KR102165864B1 - 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치 - Google Patents

엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR102165864B1
KR102165864B1 KR1020190088563A KR20190088563A KR102165864B1 KR 102165864 B1 KR102165864 B1 KR 102165864B1 KR 1020190088563 A KR1020190088563 A KR 1020190088563A KR 20190088563 A KR20190088563 A KR 20190088563A KR 102165864 B1 KR102165864 B1 KR 102165864B1
Authority
KR
South Korea
Prior art keywords
packet
queue
switch
computing environment
time
Prior art date
Application number
KR1020190088563A
Other languages
English (en)
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 KR1020190088563A priority Critical patent/KR102165864B1/ko
Priority to US16/925,394 priority patent/US11502967B2/en
Application granted granted Critical
Publication of KR102165864B1 publication Critical patent/KR102165864B1/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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • 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/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • 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

Abstract

본 발명은 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치에 관한 것으로, 본 발명의 일 실시예에 따른 패킷 스케줄링 방법은, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받는 단계, 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키는 단계, 및 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키는 단계를 포함한다.

Description

엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치{METHODS AND APPARATUSES FOR PACKET SCHEDULING FOR SOFTWARE DEFINED NETWORKING IN EDGE COMPUTING ENVIRONMENT}
본 발명은 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치에 관한 것이다.
오늘날, 전통적인 IP 네트워크는 빠르게 성장하는 사물 인터넷(IoT)에서 생성되는 거대한 양의 트래픽을 거의 처리 할 수 없다. 이 문제에 대한 효율적인 해결책으로서, 소프트웨어 정의 네트워크(SDN, software-defined networking)라 불리는 새로운 유형의 네트워킹 패러다임이 제안되었다. SDN에서, 네트워크의 제어 평면(Control plane) 및 데이터 평면(Data plane)은 종래의 네트워크와 달리 분리된다. SDN에서 스위치의 역할은 데이터 패킷을 전달하는 반면, 컨트롤러는 전체 네트워크를 제어하기 위해 별도로 설치된다. 오픈플로우(OpenFlow)는 SDN에서 컨트롤러와 스위치 사이의 통신을 위해 개발된 가장 보편적 인 프로토콜 중 하나이며, 공개 프로토콜이다.
IoT의 확산 및 풍부한 클라우드 서비스의 성공은 엣지 컴퓨팅(edge computing)이라 불리는 새로운 컴퓨팅 패러다임을 유도했다. 여기서, IoT 노드들로부터 관련 스위치들로 데이터를 효율적으로 전달하는 것이 중요한 문제이다. 엣지 컴퓨팅 환경에 다수의 노드가 존재하지만, 그 중 일부는 화재 또는 지진과 같은 치명적인 이벤트를 검출하도록 배치된다. 이러한 특유의 엣지 노드의 경우, 데이터는 그 중요성 때문에 가장 높은 우선순위로 전달되어야 한다. 따라서, 데이터 처리가 네트워크의 엣지에서 발생하는 네트워크의 성능을 최대화하기 위해서는 효율적인 우선순위 기반 스케줄링 및 강력한 큐잉 메커니즘이 필요하다. 잠재적인 트래픽 핫 스폿 또는 병목 현상을 미리 식별할 수 있도록, 성능을 정확하게 추정하기 위해 다양한 네트워크 트래픽이 고려될 필요가 있다. 이것은 엣지 컴퓨팅을 위한 SDN의 배치에서 근본적인 문제이다.
최근에, SDN의 컨트롤러 및 오픈플로우(OpenFlow) 스위치의 성능을 최대화하기 위해 많은 연구가 수행되었다. 그러나, 우선순위 스케줄링을 갖는SDN 스위치의 성능에 대한 연구는 거의 존재하지 않는다. 엣지 노드는 우선순위에 기초하여 수신된 데이터를 처리하기 때문에, 엣지 계산을 위해 우선순위 스케줄링을 갖는 SDN 스위치는 중요한 문제이다. 또한, 다중의 스위치로 우선순위 스케줄링하는 것도 필요하다.
본 발명의 실시예들은 엣지 컴퓨팅 환경에서 소트프웨어 정의 네트워킹의 다중 스위치를 위한 패킷 스케줄링 동작을 수행함으로써, 다양한 트래픽 특성을 고려하여 대기 시간을 현저히 감소시킬 수 있는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예에 따르면, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치에 의해 수행되는 패킷 스케줄링 방법에 있어서, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받는 단계; 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키는 단계; 및 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키는 단계를 포함하는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법이 제공될 수 있다.
상기 스위치는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다.
상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 상기 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함될 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치에 의해 수행되는 패킷 스케줄링 방법에 있어서, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받는 단계; 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키는 단계; 및 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 상기 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃(Push out)시키고 상기 최고 우선순위를 갖는 새로운 패킷을 상기 큐의 맨 앞에 위치시키는 단계를 포함하는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법이 제공될 수 있다.
상기 스위치는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다.
상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 상기 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 상기 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함될 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 메모리와 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받고, 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고, 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치가 제공될 수 있다.
상기 스위치는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다.
상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 상기 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함될 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 메모리와 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받고, 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고, 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 상기 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃(Push out)시키고 상기 최고 우선순위를 갖는 새로운 패킷을 상기 큐의 맨 앞에 위치시키는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치가 제공될 수 있다.
상기 스위치는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다.
상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 상기 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 상기 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함될 수 있다.
상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
본 발명의 실시예들은 엣지 컴퓨팅 환경에서 소트프웨어 정의 네트워킹의 다중 스위치를 위한 패킷 스케줄링 동작을 수행함으로써, 다양한 트래픽 특성을 고려하여 대기 시간을 현저히 감소시킬 수 있다.
도 1은 본 발명의 일 실시예가 적용되는 소프트웨어 정의 네트워크의 3개 계층 구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 사용되는 오픈플로우 프로토콜의 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 단일 스위치 및 컨트롤러의 동작을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 사용되는 패킷 매칭 동작의 프로세스를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 SDN 컨트롤러에서 패킷-인-메시지의 처리 동작을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 SDN에서 다중 스위치의 구조를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO 기반의 패킷 스케줄링 방법을 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO-P 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO-P 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치의 구성을 나타낸 구성도이다.
도 12는 FCFS 및 FCFS-P 스케줄링 알고리즘을 비교한 도면이다.
도 13은 FCFS를 이용한 실험 및 분석 모델로부터의 데이터를 비교한 도면이다.
도 14는 FCFS-P를 이용한 실험 및 분석 모델로부터의 데이터를 비교한 도면이다.
도 15는 본 발명의 일 실시예에 따른 FCFSPO 및 FCFS-PO-P를 이용한 대기 시간을 비교한 도면이다.
도 16은 본 발명의 일 실시예에 따른 FCFS-PO-P 및 FCFS-PO 스케줄링 방법과, 종래의 FCFS-BL 스케줄링 알고리즘을 비교한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예가 적용되는 소프트웨어 정의 네트워크의 3개 계층 구조를 나타낸 도면이다.
SDN은 제어 로직을 기본 라우터들 및 스위치들로부터 분리시킨다. 이는 네트워크 제어의 논리적 집중화를 촉진시키고 네트워크 프로그래밍의 능력을 이용한다. 결과적으로, 네트워크 동작의 유연하고 동적이며 프로그램 가능한 기능이 제공될 수 있다. 그러나 모든 포워딩 디바이스의 관리를 위한 원격 컨트롤러의 개입으로 인한 패킷 처리 속도 및 처리량과 같은 필수 네트워크 성능을 희생 시키면 얻을 수 있는 장점이 있다.
SDN에 대해 설명하기로 한다. SDN은 UC 버클리(UC Berkeley) 및 스탠포드 대학(Stanford University)의 프로젝트에서 유래되었다. SDN에서, 트래픽 라우팅 및 로드 밸런싱에 대한 결정을 하는 네트워크 제어 평면은 트래픽을 목적지로 전달하는 데이터 평면으로부터 분리된다. 네트워크는 직접 프로그래밍 가능하며, 인프라는 다양한 애플리케이션 및 서비스를 유연하게 지원하기 위해 추상화될 수 있다. SDN에는 2 개의 층으로 이루어진 종래의 네트워크와 달리 3 개의 층이 존재하며, 오픈플로우(OpenFlow) 프로토콜에 기초한SDN의 전형적인 구조가 도 1에 도시되어 있다.
제어 평면과 데이터 평면의 분리는 컨트롤러와 스위치 사이의 잘 정의된 프로그래밍 인터페이스에 의해 구현될 수 있다. 컨트롤러는 도 1에 도시된 바와 같이 미리 정의된 애플리케이션 프로그래밍 인터페이스(API)를 통해 데이터 평면 요소의 상태를 포함하는 직접 제어를 수행한다. 이러한 API의 예는 도 2에 도시되어 있다.
도 2는 본 발명의 일 실시예에 사용되는 오픈플로우 프로토콜의 구조를 나타낸 도면이다.
오픈플로우 스위치(120)에는 하나 이상의 패킷 처리 규칙 테이블(예컨대, 플로우 테이블)이 있다. 플로우 테이블의 각 엔트리는 [표 1]에 열거된 바와 같이 주로 6 개의 필드로 구성된다. 규칙은 트래픽의 서브 세트와 매칭되고, 드롭, 포워딩 및 수정과 같은 적절한 동작이 트래픽에 적용된다. 플로우 테이블은 인입 패킷을 다루는 방법을 결정하기 위해 사용된다.
Figure 112019075217477-pat00001
오픈플로우 컨트롤러(110)와 오픈플로우 스위치(120) 사이의 통신 프로토콜은 두 평면의 분리 때문에 특히 중요하다. 오픈플로우(OpenFlow) 프로토콜은 도 2에 도시된 바와 같이 그들 간의 통신을 위한 API를 정의하는 SDN에 광범위하게 사용된다.
SDN에서, 컨트롤러(110)는 플로우 엔트리를 추가, 업데이트 및 삭제함으로써 스위치(120)의 플로우 테이블을 조작한다. 동작은 컨트롤러(110)가 스위치(120)로부터 패킷을 수신할 때 또는 오픈플로우(OpenFlow) 컨트롤러의 구현에 따라 사전 대응적으로 반응하여 발생한다. 보안 채널은 컨트롤러(110)와 스위치(120) 간의 통신을 위해 지원된다. 오픈플로우 스위치(120)는 하나 이상의 플로우 테이블을 유지함으로써 플로우 기반 포워딩을 지원한다.
엣지 컴퓨팅(Edge computing)에 대해 설명하기로 한다. 엣지 컴퓨팅(edge computing)이라고 하는 컴퓨팅 패러다임의 새로운 시대가 도래하면서, 데이터는 분석을 포함하는 서비스의 네트워크 엣지로 전달된다. 결과적으로, 컴퓨팅은 데이터 소스에 가깝게 발생한다. 최근에 IoT의 보급으로 인해 주변에 배치된 센서 노드의 수가 급속히 증가하고 있다. 엣지 컴퓨팅(Edge computing)은 텔레커뮤니케이션 및 IT 서비스를 컨버전하는 것을 목표로 하는 생태계로서, 전체 네트워크의 가장자리에 클라우드 컴퓨팅 플랫폼을 제공한다. 엣지에서 저장 및 계산 리소스를 제공하여 대기 시간을 줄이고 리소스 활용도를 높인다.
IoT의 미래 비전으로서, SDN은 보다 효율적인 서비스를 제공하기 위해 엣지 컴퓨팅과 통합될 수 있다. 여기에서, 엣지 노드를 데이터 처리에서 보다 효율적으로 만들 수 있다. 또한, 보다 나은 사용을 위해 오픈플로우 스위치(120)의 성능을 정확하게 추정하는 것이 필수적이다. 실제 환경에서는 수천 가지 이상의 엣지 노드가 존재할 수 있지만, 그 중 일부는 데이터가 높은 우선순위로 처리되어야 하는 임계 영역에 배치된다. 따라서 본 발명의 일 실시예는 트래픽의 특성을 고려하여 네트워크의 동작을 동적으로 제어하는 우선순위 기반 스케줄링 방법을 수행한다.
도 3은 본 발명의 일 실시예에 따른 단일 스위치 및 컨트롤러의 동작을 나타낸 도면이다.
SDN은 데이터 평면으로부터 제어 평면을 분리하고 개방 인터페이스를 통해 이들을 연결함으로써 종래의 네트워크 인프라 스트럭처 상에서 새로운 구성을 용이하게 구현할 수 있게 한다. 단일 스위치(120) 및 컨트롤러(110)로 이루어진 SDN이 도 3에 도시되어 있다.
컨트롤러(110) 및 스위치(120)는 둘 사이의 통신을 위해 오픈플로우 프로토콜을 지원한다. 패킷이 오픈플로우 스위치(120)에 도달하면, 스위치(120)는 자신의 플로우 테이블을 사용하여 룩업을 수행한다. 테이블 엔트리가 일치하면, 스위치(120)는 종래의 방식으로 패킷을 포워드한다. 그렇지 않으면, 스위치(120)는 패킷 정보를 캡슐화하는 패킷-인(packet-in) 메시지를 전송함으로써 컨트롤러(110)에 명령을 요청한다. 컨트롤러(110)는 다른 스위치에 설치된 규칙을 결정한다. 그 후, 플로우에 속하는 모든 패킷들은 컨트롤러(110)에 다시 요구하지 않고 목적지로 포워딩된다.
도 4는 본 발명의 일 실시예에 사용되는 패킷 매칭 동작의 프로세스를 나타낸 도면이다.
패킷 매칭 동작의 프로세스는 도 4에 도시되어 있다. 들어오는 패킷과 패킷 인 메시지가 모두 큐에 있음을 알 수 있다. 여기서, 인커밍 패킷(Incoming packet) 및 패킷-인 메시지(Packet-in message)는 각각 M/G/1 모델 및 M/M/1 모델로 처리된다.
도 4에 도시된 바와 같이, 오픈플로우 스위치(120)로 들어오는 패킷은 큐잉되고, FCFS(First Come First Served) 또는 우선순위(FCFS-P, First Come First Served Priority) 스케줄링 정책을 갖는 FCFS에 의해 스케줄링된다. FCFS는 정규 트래픽에 적용되는 반면, FCFS-P는 긴급 패킷에 적용된다. FCFS M/G/1 큐 처리 시스템에서 패킷의 평균대기 시간은 두 가지 구성 요소로 구성된다. 첫 번째 구성 요소는 패킷 도착 시 큐에서 대기 중인 패킷을 처리하는 데 필요한 시간이다. 두 번째 구성 요소는 서비스 중인 패킷으로 인한 시간이다. 두 번째 구성 요소는 시스템이 사용 중이면 시스템이 비어 있으면 0이다. 두 가지 요소를 고려해 볼 때, FCFS 스케줄링을 통한 패킷의 평균 체류 시간은 하기의 [수학식 1]과 같이 구해진다. M/G/1 큐와 함께,
Figure 112019075217477-pat00002
는 포아송(Poisson) 프로세스의 도착 속도이고,
Figure 112019075217477-pat00003
는 평균 서비스 시간이다.
Figure 112019075217477-pat00004
위 식에서, Nq는 큐에 있는 패킷 수,
Figure 112019075217477-pat00005
는 큐가 사용되는 확률,
Figure 112019075217477-pat00006
는 서비스의 남은 평균 수명이다.
리틀의 방정식(Little’s)과 P-K (Pollaczek and Khinchin) 방정식을 채택함으로써, [수학식 1]은 하기의 [수학식 2]와 같이 표현될 수 있다.
Figure 112019075217477-pat00007
FCFS-P의 모델은 비 순차 조작으로 인해 FCFS M/G/1 큐와 다르다. 상이한 포아송 도착 레이트 및 서비스 시간을 갖는 여러 클래스의 패킷이 존재한다. m 개의 클래스가 있다고 가정하면,
Figure 112019075217477-pat00008
Figure 112019075217477-pat00009
는 각각 class-i의 평균 서비스 시간 및 도달 속도이다. class-i에서 동작하는 시스템의 시간 분율은
Figure 112019075217477-pat00010
와 같다. 패킷은 우선순위 노드에 따라 우선순위에 따라 처리되는 반면, 소수의 클래스는 높은 우선순위가 주어진다.
FCFS-P의 M/G/1 큐잉 시스템에서 들어오는 패킷의 평균 체류 시간은 세 가지 구성 요소로 구성된다. 첫 번째 구성 요소는 현재 서비스 중인 패킷이 완료되는 데 걸리는 시간, S0이다. 두 번째 구성 요소는 큐에서 우선순위가 같거나 높은 큐에서 대기하는 패킷 서비스 시간이다. 세 번째 구성 요소는 자체적으로 도착하지만 우선순위가 더 높은 패킷의 서비스를 위한 구성 요소이다. 리틀의 결과 정리(Little’s result theorem)에 따르면, 클래스-m의 패킷 수는
Figure 112019075217477-pat00011
이다. 따라서 FCFS-P M/G/1 큐잉 시스템의 체류 시간은 하기의 [수학식 3]과 같다.
Figure 112019075217477-pat00012
[수학식 3]은 다음과 같이 수학식을 재귀적으로 적용하여 풀 수 있다.
Figure 112019075217477-pat00013
Figure 112019075217477-pat00014
선점적 스케줄링으로
Figure 112019075217477-pat00015
는 우선순위가 높은 패킷에 기인한다. 따라서 하기의 [수학식 6]과 같이 표현할 수 있다.
Figure 112019075217477-pat00016
도 5는 본 발명의 일 실시예에 따른 SDN 컨트롤러에서 패킷-인-메시지의 처리 동작을 나타낸 도면이다.
패킷 인 메시지에 대해서 설명하기로 한다.
전술한 바와 같이, 오픈플로우 스위치(120)는, 패킷이 플로우 테이블과 일치하지 않는 경우, 플로우 인 설정 요구로서 패킷 인 메시지를 관련 컨트롤러(110)에 보낸다. 패킷- 인 메시지의 처리의 다이어그램은 도 5에 도시된다. 패킷 인 메시지의 프로세스는 컨트롤러(110)에 연결된 스위치(120)의 수에 관계없이 플로우 도착 프로세스와 일대일 대응을 갖는다. 각각의 플로우 도착은 포아송 분포를 따르는 것으로 가정된다. 따라서 다수의 스위치(120)로부터의 패킷 인 메시지는 중첩 정리에 의해 푸아송 스트림을 구성한다.
도 6은 본 발명의 일 실시예에 따른 SDN에서 다중 스위치의 구조를 나타낸 도면이다.
다중 스위치로 우선순위 예약에 대해 설명하기로 한다. 기본 구조로서, SDN은 제어 평면과 데이터 전달 평면을 분리하기 때문에, 데이터 전송은 2 가지 유형으로 이루어진다. 하나는 엣지노드로부터 스위치(120)까지이며, 다른 하나는 패킷-인 메시지에 대한 원격 컨트롤러(110)로의 스위치(120)로부터이다. 이들은 도 6에 예시되어 있다.
오픈플로우 스위치(120)에는 적어도 하나의 플로우 테이블이 있고, 인입 패킷은 제1 플로우 테이블로부터 매칭된다. 플로우 엔트리와의 매칭 시에, 플로우 엔트리의 명령 세트가 실행된다. 드롭, 후속 플로우 테이블로의 포워딩, 및 패킷-인-메시지로서 컨트롤러(110)로의 전송가 같은 3 가지 옵션이 있다. 플로우 테이블이 오픈플로우 스위치(120)로 전송될 때 프로그래머가 하나의 옵션을 선택할 수 있다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO 기반의 패킷 스케줄링 방법을 나타낸 흐름도이다.
소프트웨어 정의 네트워킹을 위한 FCFS-PO(First Come First Served-Pushout) 기반의 패킷 스케줄링 방법을 살펴보면 다음과 같다
단계 S101에서, 패킷 스케줄링 장치는 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치(120)와 연결된 큐에 도착하는 패킷을 입력받는다.
단계 S102에서, 패킷 스케줄링 장치는 스위치(120)에서 패킷이 서비스될 때마다 큐에 도착하는 순서대로 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시킨다.
단계 S103에서, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 차 있고, 새로운 패킷이 들어오는지를 확인한다.
단계 S104에서, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 차 있고, 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃시키고 새로운 패킷을 큐의 맨 뒤에 위치시킨다. 반면, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 차 있고, 새로운 패킷이 들어오지 않는 경우, 단계 S101부터 다시 수행한다.
여기서, 스위치(120)는 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다. 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다. 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함될 수 있다. 큐에서 패킷의 평균 서비스 시간은, 큐에 있는 패킷 수, 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
도 8은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
FCFS-PO 기반의 패킷 스케줄링 동작을 사용하면 패킷이 들어올 때 버퍼가 가득 차면 헤드 부분의 패킷이 푸시 되는 동안 큐의 끝에 놓이게 된다. 모든 패킷은 패킷이 제공될 때 한 위치 앞으로 이동한다. 여기서 버퍼 내의 패킷의 위치는 대기 패킷의 수에 의해 결정된다.
FCFS-PO 메커니즘은 스위치에 도달하는 패킷이
Figure 112019075217477-pat00017
의 속도로 포아송(Poisson) 도착을 따르는 것으로 가정하여 모델링된다. 이것은 도착 시간이 독립적이며 지수 분포를 따른다는 것을 의미한다. 패킷 서비스 시간 또한 독립적이며 일반적인 분배
Figure 112019075217477-pat00018
를 따른다. 또한, 시스템은 N개의 패킷을 가질 수 있다고 가정하고, 버퍼 크기는(N-1)이다. 마지막으로 도착 프로세스와 서비스 프로세스는 독립적이라고 가정한다.
M/G/1/N 큐의 정상 상태 확률을
Figure 112019075217477-pat00019
라고 가정하고,
Figure 112019075217477-pat00020
는 M/G/1 큐이며, 하기의 [수학식 7]식과 같다.
Figure 112019075217477-pat00021
Figure 112019075217477-pat00022
는 새로운 패킷이 도착했을 때 이미 시스템에 있는 패킷의 정상 상태 확률이다. 다음으로 Poisson Arrivals See Time Averages (PASTA)에 따라 하기의 [수학식 8]을 얻을 수 있다.
Figure 112019075217477-pat00023
여기서,
Figure 112019075217477-pat00024
이다. 정상 상태의 큐의 2 개의 성능 지표는 하기의 [수학식 9] 및 [수학식 10]과 같이 처리된다:
(i) 패킷이 서비스를 획득 할 확률,
Figure 112019075217477-pat00025
,
Figure 112019075217477-pat00026
(ⅱ) 시스템의 패킷 손실 속도,
Figure 112019075217477-pat00027
,
Figure 112019075217477-pat00028
FCFS-PO 메커니즘을 사용하면 버퍼에 패킷이 가득 차면 들어오는 패킷이 끝나고 버퍼 관리 정책에 따라 새로 들어오는 패킷의 Head Of Line(HOL) 패킷이 푸시된다. 상태
Figure 112019075217477-pat00029
에 있는 패킷에 대한 정상 상태 확률을
Figure 112019075217477-pat00030
로 표시하고 패킷이 시스템을 떠날 때 마침내 서비스를 얻는다. a=1이면 패킷이 서비스 중이며,
Figure 112019075217477-pat00031
Figure 112019075217477-pat00032
일 때,
Figure 112019075217477-pat00033
는 서비스를 기다려야 한다. 패킷이 서비스되는 동안 들어오는 패킷이 있다고 가정하면 서비스를 받기 위해
Figure 112019075217477-pat00034
에 대해
Figure 112019075217477-pat00035
된다.
Figure 112019075217477-pat00036
인 경우 푸시 할 패킷이 없다. 그런 다음 패킷의 위치가
Figure 112019075217477-pat00037
에서
Figure 112019075217477-pat00038
로 변경된다. 버퍼는
Figure 112019075217477-pat00039
동안 가득 차고 들어오는 패킷은 위치 2에서 패킷을 밀어낸다. 그러면 패킷의 위치가 (a, b) ~
Figure 112019075217477-pat00040
이다. 마지막으로,
Figure 112019075217477-pat00041
의 상태 전이 방정식은 하기의 [수학식 11]과 같이 얻어진다.
Figure 112019075217477-pat00042
하기의 [수학식 12]인 부울 함수는 패킷이 제공여부를 나타낸다.
Figure 112019075217477-pat00043
[수학식 9] 및 [수학식 10]을 이용하면 (L=0) 및 P(L=1)의 확률을 용이하게 얻을 수 있다.
Bn(n≥1)은 n패킷이 서비스되는 동안 들어오는 패킷의 수를 나타내며, R(t)는 현재 서비스 중인 패킷의 남은 시간이다.
ba의 라플라스- 스티어쯔 변환(LST)은 하기의 [수학식 13]과 같이 얻어 진다.
Figure 112019075217477-pat00044
최종적으로 서비스를 얻을 때까지 Ps(a, b)에 대한 평균 대기 시간을 H(a, b)로 표시하고, 대기 시간은 t보다 길지 않다.
그러면, H(a, b, θ)의 확률은 하기의 [수학식 14]와 같이 표시된다
Figure 112019075217477-pat00045
따라서 H(a, b)는 하기의 [수학식 15]와 같이 얻을 수 있다.
Figure 112019075217477-pat00046
Ps(a, b)에 대한 조건부 평균 대기 시간은 하기의 [수학식 16]과 같다.
Figure 112019075217477-pat00047
여기서 Qa 및 ba(1 ≤ a ≤ N)는 각각 [수학식 8] 및 [수학식 13]에 의해 주어진다. H(a, b)는 [수학식 15]로 주어진다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO-P 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
소프트웨어 정의 네트워킹을 위한 FCFS-PO-P(First Come First Served-Pushout-Priority) 기반의 패킷 스케줄링 방법을 살펴보면 다음과 같다
단계 S201에서, 패킷 스케줄링 장치는 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치(120)와 연결된 큐에 도착하는 패킷을 입력받는다.
단계 S202에서, 패킷 스케줄링 장치는 스위치(120)에서 패킷이 서비스될 때마다 큐에 도착하는 순서대로 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시킨다.
단계 S203에서, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 찬 상태에서 스위치(120)로 최고 우선순위를 갖는 새로운 패킷이 들어오는지를 확인한다.
단계 S204에서, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 찬 상태에서 스위치(120)로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃시키고 최고 우선순위를 갖는 새로운 패킷을 큐의 맨 앞에 위치시킨다. 반면, 패킷 스케줄링 장치는 큐에 구비된 버퍼가 가득 찬 상태에서 스위치(120)로 최고 우선순위를 갖는 새로운 패킷이 들어오지 않는 경우, 단계 S201부터 다시 수행한다.
여기서, 스위치(120)는 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다. 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다. 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함될 수 있다. 큐에서 패킷의 평균 서비스 시간은, 큐에 있는 패킷 수, 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
도 10은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워킹을 위한 FCFS-PO-P 기반의 패킷 스케줄링 동작을 나타낸 도면이다.
FCFS-PO-P 스케줄링 동작에 대해서 설명하기로 한다. FCFS-PO-P의 모델링에서 들어오는 패킷의 도착 프로세스와 서비스 프로세스는 FCFS-PO의 모델링과 동일하다. 본 발명의 일 실시예에서는 새로 들어오는 패킷이 이미 큐에 있는 패킷 중에서 가장 높은 우선순위를 갖는다고 가정한다. 그런 다음 새로 들어오는 패킷이 먼저 서비스를 받기 위해 앞쪽에 놓이게 된다. 그리고 버퍼 관리 정책은 큐에서 가장 오래 기다린 N위치의 패킷을 밀어 낸다.
Figure 112019075217477-pat00048
는 위치 a에 있는 패킷의 정상 상태 확률을 나타내며 최종적으로 제공된다.. FCFS-PO-P 정책을 사용하면
Figure 112019075217477-pat00049
가 순서대로 대기한다. 수신 패킷이 서비스 중일 때 도착한 것으로 가정한다. 그런 다음 서비스가 종료될 때
Figure 112019075217477-pat00050
가 위치
Figure 112019075217477-pat00051
로 이동한다.
Figure 112019075217477-pat00052
의 전이 방정식은 하기의 [수학식 17과 같다.
Figure 112019075217477-pat00053
다음으로 평균 대기 시간을 계산한다. 서비스를 받기 위한
Figure 112019075217477-pat00054
의 확률보다 크지 않은 서비스 시간의 확률은
Figure 112019075217477-pat00055
이고,
Figure 112019075217477-pat00056
의 LST는 하기의 [수학식 18]과 같다.
Figure 112019075217477-pat00057
Figure 112019075217477-pat00058
의 재귀적 방정식은 하기의 [수학식 1]와 같이 얻을 수 있다.
Figure 112019075217477-pat00059
Figure 112019075217477-pat00060
Figure 112019075217477-pat00061
에 대한 평균대기 시간을 나타나며 식은 하기의 [수학식 20]와 같다.
Figure 112019075217477-pat00062
최종적인
Figure 112019075217477-pat00063
의 평균대기 시간은 하기의 [수학식 21]과 같다.
Figure 112019075217477-pat00064
도 11은 본 발명의 일 실시예에 따른 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치의 구성을 나타낸 구성도이다.
도 11에 도시된 바와 같이, 본 발명의 일 실시예에 따른 FCFS-PO 기반의 패킷 스케줄링 장치(200)는 메모리(220) 및 프로세서(230)를 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 패킷 스케줄링 장치(200)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 패킷 스케줄링 장치(200)가 구현될 수 있다.
이하, 도 11의 FCFS-PO 기반의 패킷 스케줄링 장치(200)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.
메모리(220)는 적어도 하나의 프로그램을 저장한다.
프로세서(230)는 메모리(220)와 연결된다. 프로세서(230)는, 적어도 하나의 프로그램을 실행함으로써, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치(120)와 연결된 큐(Queue)에 도착하는 패킷을 입력받고, 상기 스위치(120)에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고, 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치(120)로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시킨다.
실시예들에 따르면, 스위치(120)는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치(120)일 수 있다.
실시예들에 따르면, 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
실시예들에 따르면, 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함될 수 있다.
실시예들에 따르면, 큐에서 패킷의 평균 서비스 시간은, 큐에 있는 패킷 수, 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
한편, 본 발명의 다른 실시예에 따른 FCFS-PO-P 기반의 패킷 스케줄링 장치(200)는 메모리(220) 및 프로세서(230)를 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 패킷 스케줄링 장치(200)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 패킷 스케줄링 장치(200)가 구현될 수 있다.
이하, 도 11의 FCFS-PO 기반의 패킷 스케줄링 장치(200)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.
메모리(220)는 적어도 하나의 프로그램을 저장한다.
프로세서(230)는 메모리(220)와 연결된다. 프로세서(230)는, 상기 적어도 하나의 프로그램을 실행함으로써, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치(120)와 연결된 큐(Queue)에 도착하는 패킷을 입력받고, 상기 스위치(120)에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고, 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치(120)로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 상기 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃(Push out)시키고 상기 최고 우선순위를 갖는 새로운 패킷을 상기 큐의 맨 앞에 위치시킨다.
실시예들에 따르면, 스위치(120)는, 소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치일 수 있다.
실시예들에 따르면, 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 패킷의 도착 시간이 독립적이고 지수 분포를 따를 수 있다.
실시예들에 따르면, 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 상기 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 상기 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함될 수 있다.
실시예들에 따르면, 큐에서 패킷의 평균 서비스 시간은, 큐에 있는 패킷 수, 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산될 수 있다.
한편, 본 발명의 일 실시예에 따른 패킷 스케줄링 방법에 대해 성능 평가를 설명하기로 한다. 오픈플로우 스위치에 대해 제안된 패킷 스케줄링 방식의 성능이 평가된다.
실험 환경에서, 테스트 베드는 실험을 위해 3 개의 라즈베리 파이 노드로 구현된다. 우선순위 스케줄링을 갖는 데이터는 테스트 베드로부터 수집되고, 이들은 분석 모델과 비교된다. 오픈플로우 스위치는 오픈플로우 프로토콜로 실제 스위치를 구현하기 위해 라즈베리 파이 노드에 설치된다. 오픈플로우 스위치는 모든 주요 하이퍼 바이저 플랫폼을 대상으로 하는 다층, 오픈 소스 가상 스위치이다. 가상 환경에서의 네트워킹을 위해 설계되었기 때문에, 종래의 소프트웨어 스위치 아키텍처와는 상당히 다르다.
실험을 위해 하나의 원격 컨트롤러 및 3 개의 오픈플로우 스위치가 구현된다. 3 개의 라즈베리 파이 노드가 오픈플로우 스위치로서 동작하고, 플러드 라이트는 원격 컨트롤러로서 동작하는 다른 컴퓨터에 설치된다. 플러드라이트(Floodlight)는 자바 기반 오픈 소스 컨트롤러이며, 물리적 및 가상 오픈플로우 호환 스위치를 지원하는 가장 보편적인 SDN 컨트롤러 중 하나이다. 스탠포드 대학(Stanford University)의 베이컨 컨트롤러(Bacon controller)에 기초한다. 4 개의 네트워크 인터페이스는 라즈베리 파이 노드와 함께 공급된다. 따라서, 데이터를 수집하기 위해3 개의 오픈플로우 스위치가 설치되고, 하나의 인터페이스는 컨트롤러 네트워크에 접속하기 위해 사용된다. 네트워크 트래픽은 소프트웨어 툴 "iPerf"에 의해 생성된다. 하나의 호스트가 서버로서 선택되고 다른 하나는 iPerf에 의해 단말기로서 선택된다. 그 후, 호스트는UDP 프로토콜에 의해 200Mbps의 대역폭으로 패킷을 서버에 송신한다. 시뮬레이션 결과를 살펴보기로 한다. 먼저, 단일 스위치를 갖는 제안된 스케줄링 알고리즘의 시뮬레이션 결과가 제공된다.
도 12는 FCFS 및 FCFS-P 스케줄링 알고리즘을 비교한 도면이다.
FCFS-P 알고리즘은 대부분 FCFS 알고리즘보다 더 긴 체류 시간을 야기한다. FCFS-P 알고리즘은 들어오는 패킷이 높은 우선순위를 가질 때 때때로FCFS와 유사한 성능을 나타낸다.
도 13은 FCFS를 이용한 실험 및 분석 모델로부터의 데이터를 비교한 도면이다.
도 13은 실험 및 분석 모델로부터의 데이터를 비교한다. 전술 한 바와 같이, 3 개의 변수, λ,
Figure 112019075217477-pat00065
, 및 ρ가 FCFS 스케줄링 알고리즘에 사용된다. 이전의 연구와 유사하게, λ 및
Figure 112019075217477-pat00066
는 경험적으로 각각 2 및 0.016으로 설정된다. 다양한 조건에서 성능을 확인하기 위해 ρ는 0.1, 0.5 및 0.9로 설정된다. 시뮬레이션 시간이 경과함에 따라 데이터가 안정화되고, 0.5의 ρ는 가장 가까운 추정을 가능하게 한다.
도 14는 FCFS-P를 이용한 실험 및 분석 모델로부터의 데이터를 비교한 도면이다.
도 14는 FCFS-P의 경우이다. 여기서, ω0,
Figure 112019075217477-pat00067
,
Figure 112019075217477-pat00068
및 Si의 값은 각각0.02, 0.018, 0.016 및 2이다. 이 경우, 0.9의 ρ가 가장 좋은 결과를 나타낸다. N = 10 및 μ = 5로 가정한다.
도 15는 본 발명의 일 실시예에 따른 FCFSPO 및 FCFS-PO-P를 이용한 대기 시간을 비교한 도면이다.
도 15는 λ가 변함에 따라 FCFSPO 및 FCFS-PO-P를 비교한다. 도 15로부터 FCFS-PO-P에 대한 평균 대기 시간은 FCFS-PO 메커니즘보다 작음을 관찰 할 수 있다. 정상 상태에서 FCFS-PO에 의한 대기 시간의 확률 밀도 함수는 하기의 [수학식 22]와 같다.
Figure 112019075217477-pat00069
여기서,
Figure 112019075217477-pat00070
는 B(t) 및
Figure 112019075217477-pat00071
의 n 배의 컨볼루션이다. R(t)는 B(t) 및 R(t)의 컨볼루션이다. 들어오는 패킷은 시스템에서 대기 중인 패킷이 없다면 직접적으로 처리되며, 이는 패킷의 대기 시간이 0임을 의미한다. V0은 시스템이 유휴 상태로 될 확률이고 Vn은 시스템에서 대기중인
Figure 112019075217477-pat00072
개의 패킷이 있을 확률이다. 그 다음, 들어오는 패킷은 Position_(n+1)에서 대기할 것이다. 총 대기 시간은 남은 서비스 시간과 그것 앞에 있는 패킷의 서비스 시간으로 구성된다. 평균 대기 시간은 하기의 [수학식 23]과 같이 얻어질 수 있다.
Figure 112019075217477-pat00073
도 16은 본 발명의 일 실시예에 따른 FCFS-PO-P 및 FCFS-PO 스케줄링 방법과, 종래의 FCFS-BL 스케줄링 알고리즘을 비교한 도면이다.
FCFS-BL(FCFS-Block) 스케줄링에서, 입력 패킷은 버퍼가 가득 차면 손실된다. 도 16으로부터 푸시아웃(Pushout) 메카니즘인 FCFS-PO 스케줄링 방법이 FCFS-BL 스케줄링보다 더 효과적이라는 것을 알 수 있다. 특히 λ가 커질수록 우위가 높아진다. 전체적으로 살펴보면, FCFS-PO-P 메카니즘은 3 개의 메카니즘 중에서 가장 좋은 결과를 나타낸다.
상술한 본 발명의 실시예들에 따른 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 본 발명의 실시예들에 따른 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금: 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받고, 상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고, 상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.
상술한 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해, 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.
지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가될 수 있다.
이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
전술한 실시예들의 조합은 전술한 실시예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.
전술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
전술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
110: 오픈플로우 컨트롤러
120: 오픈플로우 스위치
200: 패킷 스케줄링 장치
210: 통신 모듈
220: 메모리
230: 프로세서

Claims (20)

  1. 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치에 의해 수행되는 패킷 스케줄링 방법에 있어서,
    엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받는 단계;
    상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키는 단계; 및
    상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키는 단계를 포함하고,
    상기 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 상기 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  2. 제1항에 있어서,
    상기 스위치는,
    소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치인, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  3. 제1항에 있어서,
    상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따르는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  6. 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치에 의해 수행되는 패킷 스케줄링 방법에 있어서,
    엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받는 단계;
    상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키는 단계; 및
    상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 상기 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃(Push out)시키고 상기 최고 우선순위를 갖는 새로운 패킷을 상기 큐의 맨 앞에 위치시키는 단계를 포함하고,
    상기 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 상기 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 상기 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  7. 제6항에 있어서,
    상기 스위치는,
    소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치인, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  8. 제6항에 있어서,
    상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따르는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  9. 삭제
  10. 제6항에 있어서,
    상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법.
  11. 적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 메모리와 연결된 프로세서를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써,
    엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받고,
    상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고,
    상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 새로운 패킷이 들어오는 경우, 맨 앞에 위치한 패킷을 푸시아웃(Push out)시키고 상기 새로운 패킷을 상기 큐의 맨 뒤에 위치시키고,
    상기 큐에서 패킷의 평균 서비스 시간은, 패킷 도착 시 상기 큐에서 대기 중인 패킷을 처리하는 시간과 서비스 중인 패킷을 처리하는 시간이 포함되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  12. 제11항에 있어서,
    상기 스위치는,
    소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치인, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  13. 제11항에 있어서,
    상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따르는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  14. 삭제
  15. 제11항에 있어서,
    상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  16. 적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 메모리와 연결된 프로세서를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써,
    엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워크의 스위치와 연결된 큐(Queue)에 도착하는 패킷을 입력받고,
    상기 스위치에서 패킷이 서비스될 때마다 상기 큐에 도착하는 순서대로 상기 큐에 있는 패킷을 하나의 위치씩 앞으로 이동시키고,
    상기 큐에 구비된 버퍼가 가득 찬 상태에서 상기 스위치로 최고 우선순위를 갖는 새로운 패킷이 들어오는 경우, 상기 큐에서 최장 대기 시간을 갖는 패킷을 푸시아웃(Push out)시키고 상기 최고 우선순위를 갖는 새로운 패킷을 상기 큐의 맨 앞에 위치시키고,
    상기 큐에서 패킷의 평균 서비스 시간은, 현재 서비스 중인 패킷이 완료되는데 걸리는 시간, 상기 큐에서 자신보다 우선순위가 같거나 높은 패킷을 서비스하는 시간 및 상기 큐에 자신보다 우선순위가 높은 패킷을 서비스하는 시간이 포함되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  17. 제16항에 있어서,
    상기 스위치는,
    소프트웨어 정의 네트워크에서 오픈플로우(OpenFlow) 프로토콜에 따라 동작하는 다중 스위치인, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  18. 제16항에 있어서,
    상기 패킷이 포아송(Poisson) 프로세스의 도착 속도를 따르는 것으로 모델링되고 상기 패킷의 도착 시간이 독립적이고 지수 분포를 따르는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
  19. 삭제
  20. 제16항에 있어서,
    상기 큐에서 패킷의 평균 서비스 시간은, 상기 큐에 있는 패킷 수, 상기 큐가 사용되는 확률 및 서비스의 남은 평균 수명을 이용하여 계산되는, 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 장치.
KR1020190088563A 2019-07-22 2019-07-22 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치 KR102165864B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190088563A KR102165864B1 (ko) 2019-07-22 2019-07-22 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치
US16/925,394 US11502967B2 (en) 2019-07-22 2020-07-10 Methods and apparatuses for packet scheduling for software-defined networking in edge computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088563A KR102165864B1 (ko) 2019-07-22 2019-07-22 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102165864B1 true KR102165864B1 (ko) 2020-10-14

Family

ID=72846773

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190088563A KR102165864B1 (ko) 2019-07-22 2019-07-22 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치

Country Status (2)

Country Link
US (1) US11502967B2 (ko)
KR (1) KR102165864B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002046A (zh) * 2022-05-26 2022-09-02 北京天融信网络安全技术有限公司 报文处理方法、numa节点、电子设备及存储介质
KR20230029416A (ko) * 2021-08-24 2023-03-03 전주대학교 산학협력단 Mec 환경에서 긴급 데이터 전송을 위한 sdn 기반 패킷 스케줄링 방법
CN117114113A (zh) * 2023-10-24 2023-11-24 南京邮电大学 一种基于排队论的协同推理加速方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094246B (zh) * 2021-03-30 2022-03-25 之江实验室 一种边缘异构计算环境仿真系统
CN114390122A (zh) * 2022-01-20 2022-04-22 长安大学 一种凹印集中供墨控制系统Glink协议下自适应控制调度方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060127237A (ko) * 2004-03-26 2006-12-11 라 졸라 네트웍스, 인코포레이티드 스케일러블한 다기능 네트워크 통신을 위한 시스템 및 방법
US20140185450A1 (en) * 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Apparatus for a High Performance and Highly Available Multi-Controllers in a Single SDN/OpenFlow Network
WO2018019367A1 (en) * 2016-07-26 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Packet processing technique for a communication network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796022A (en) * 1985-12-13 1989-01-03 Northern Telecom Limited Double transit bus system
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US6247058B1 (en) * 1998-03-30 2001-06-12 Hewlett-Packard Company Method and apparatus for processing network packets using time stamps
EP1127435A1 (en) * 1998-10-27 2001-08-29 Fujitsu Network Communications, Inc. Frame based quality of service
US6430160B1 (en) * 2000-02-29 2002-08-06 Verizon Laboratories Inc. Estimating data delays from poisson probe delays
US8054847B2 (en) * 2006-10-31 2011-11-08 Hewlett-Packard Development Company, L.P. Buffer management in a network device
US8208380B1 (en) * 2006-11-22 2012-06-26 Marvell Israel (M.I.S.L) Ltd. Lossless system support using circular buffer allocation
US8307430B1 (en) * 2007-01-30 2012-11-06 Riorey, Inc. Method and system for UDP flood attack detection
US8737415B2 (en) * 2010-07-02 2014-05-27 Telefonaktiebolaget L M Ericsson (Publ) Prioritization of data packets
RU2012130778A (ru) * 2012-07-18 2014-01-27 ЭлЭсАй Корпорейшн Маршрутизатор пакетов, имеющий иерархическую структуру буфера
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
CN107196877B (zh) 2016-03-14 2021-07-20 华为技术有限公司 网络流量控制的方法及其网络设备
WO2018042230A1 (en) * 2016-09-01 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Configurable selective packet-in mechanism for openflow switches
US10097472B2 (en) * 2016-09-14 2018-10-09 At&T Intellectual Property I, L.P. Method and system for dynamically distributing and controlling a virtual gateway
US10397124B2 (en) * 2017-01-17 2019-08-27 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method to prevent persistent full switch queues in software defined networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060127237A (ko) * 2004-03-26 2006-12-11 라 졸라 네트웍스, 인코포레이티드 스케일러블한 다기능 네트워크 통신을 위한 시스템 및 방법
US20140185450A1 (en) * 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Apparatus for a High Performance and Highly Available Multi-Controllers in a Single SDN/OpenFlow Network
WO2018019367A1 (en) * 2016-07-26 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Packet processing technique for a communication network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230029416A (ko) * 2021-08-24 2023-03-03 전주대학교 산학협력단 Mec 환경에서 긴급 데이터 전송을 위한 sdn 기반 패킷 스케줄링 방법
KR102594388B1 (ko) * 2021-08-24 2023-10-27 전주대학교 산학협력단 Mec 환경에서 긴급 데이터 전송을 위한 sdn 기반 패킷 스케줄링 방법
CN115002046A (zh) * 2022-05-26 2022-09-02 北京天融信网络安全技术有限公司 报文处理方法、numa节点、电子设备及存储介质
CN115002046B (zh) * 2022-05-26 2024-01-23 北京天融信网络安全技术有限公司 报文处理方法、numa节点、电子设备及存储介质
CN117114113A (zh) * 2023-10-24 2023-11-24 南京邮电大学 一种基于排队论的协同推理加速方法
CN117114113B (zh) * 2023-10-24 2023-12-29 南京邮电大学 一种基于排队论的协同推理加速方法

Also Published As

Publication number Publication date
US20210029052A1 (en) 2021-01-28
US11502967B2 (en) 2022-11-15

Similar Documents

Publication Publication Date Title
KR102165864B1 (ko) 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치
JP6938766B2 (ja) パケット制御方法およびネットワーク装置
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US8234435B2 (en) Relay device
RU2487401C2 (ru) Способ обработки данных, узел-маршрутизатор и носитель информации
US11099902B1 (en) Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications
US11715040B1 (en) Network switch with integrated gradient aggregation for distributed machine learning
US10146848B2 (en) Systems and methods for autonomous, scalable, and distributed database management
US10931588B1 (en) Network switch with integrated compute subsystem for distributed artificial intelligence and other applications
CN105721300A (zh) 用于网络设备流查找管理的技术
CN107948094A (zh) 一种高速数据帧无冲突入队处理的装置及方法
JP2013026680A (ja) ネットワーク装置及び送信フレームの制御方法
CN104468401A (zh) 一种报文处理方法和装置
US20110255543A1 (en) Method and system for processing data
Miao et al. Performance modelling of preemption-based packet scheduling for data plane in software defined networks
US9124587B2 (en) Information processing system and control method thereof
US9722810B2 (en) Computer-based flow synchronization for efficient multicast forwarding for products and services
CN110519180B (zh) 网卡虚拟化队列调度方法及系统
US9401879B1 (en) Systems and methods for sending and receiving information via a network device
CN111756586B (zh) 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质
Munir et al. Network scheduling and compute resource aware task placement in datacenters
JP7127743B2 (ja) 通信装置、通信方法及びプログラム
Tkachova et al. A load balancing algorithm for SDN
US20120163398A1 (en) Communication apparatus, relay apparatus, and network system
CN113395183A (zh) 网络仿真平台vlan互联的虚拟节点调度方法与系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant