KR20170101537A - 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드 - Google Patents

무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드 Download PDF

Info

Publication number
KR20170101537A
KR20170101537A KR1020160024186A KR20160024186A KR20170101537A KR 20170101537 A KR20170101537 A KR 20170101537A KR 1020160024186 A KR1020160024186 A KR 1020160024186A KR 20160024186 A KR20160024186 A KR 20160024186A KR 20170101537 A KR20170101537 A KR 20170101537A
Authority
KR
South Korea
Prior art keywords
flow
packets
processor
discard
packet
Prior art date
Application number
KR1020160024186A
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 KR1020160024186A priority Critical patent/KR20170101537A/ko
Priority to US15/440,094 priority patent/US20170250929A1/en
Publication of KR20170101537A publication Critical patent/KR20170101537A/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/56Queue scheduling implementing delay-aware scheduling
    • 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
    • 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
    • H04L47/14
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

해당 노드의 플로우 별 상태 정보를 유지하고, 충돌 범위 내의 다른 노드들로부터 수신한 플로우 개수를 포함하는 플로우 정보 및 해당 노드의 플로우 별 상태 정보에 기초하여, 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하며, 추정된 도달 시간에 기초하여, 패킷들에 대한 폐기, 및 큐로의 스케줄링을 결정하는 큐를 관리하는 방법 및 통신 노드가 제공된다.

Description

무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드{METHOD AND APARATUS OF ACTIVE QUEUE MANAGEMENT FOR WIRELESS NETWORKS USING SHARED WIRELESS CHANNEL}
아래의 실시예들은 무선 메쉬 네트워크에서 플로우(flow)에 기반하여 큐를 관리하는 방법 및 통신 노드에 관한 것이다.
최근 유, 무선 네트워크에서는 네트워크 노드에서의 과도한 패킷 버퍼링(packet buffering)으로 인하여 발생되는 성능 저하 이슈인 버퍼 블로트 (Buffer bloat) 문제 및 그 해결책에 대한 제시가 이루어지고 있다. 특히, 해결책으로 유선 네트워크에서 PARC의 Van Jacobson 등이 제안한 CoDel(Controlled Delay) 및 이에 기반한 확장 방법과 시스코(Cisco) 사에서 제안한 PIE(Proportional Integral Controller Enhanced)로 불리는 방법이 주목을 받고 있다. 하지만, 유선 네트워크와 상이한 무선 네트워크의 특징으로 인해 현재 무선 네트워크에서는 유선 네트워크에서 적용되는 방법이 정상적으로 동작하지 않는 문제가 있다.
일 실시예에 따르면, 무선 메쉬 네트워크에서의 버퍼 블로트 문제를 해결할 수 있다.
일 실시예에 따르면, 메쉬 네트워크에서 존재하는 RTT(Round Trip Time)의 공정성(Fairness) 문제를 해결할 수 있다.
일 실시예에 따르면, 큐를 관리하는 방법은 플로우(flow)별 상태 정보를 유지하는 단계; 충돌 범위(collision range) 내의 다른 노드들로부터, 플로우 개수를 포함하는 플로우 정보를 수신하는 단계; 상기 다른 노드로부터 수신한 플로우 정보 및 상기 플로우 별 상태 정보에 기초하여, 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하는 단계; 및 상기 추정된 도달 시간(Estimated Time-of-Arrival; ETA)에 기초하여, 상기 패킷들에 대한 폐기, 및 큐로의 스케줄링을 결정하는 단계를 포함한다.
상기 도달 시간을 추정하는 단계는 상기 통신 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수를 기초로 유효 플로우 개수(effective flow number)를 산출하는 단계; 및 상기 유효 프로우 개수에 기초하여 상기 패킷들 각각의 도달 시간을 추정하는 단계를 포함할 수 있다.
상기 패킷들에 대한 폐기 및 스케줄링을 결정하는 단계는 상기 플로우에 포함된 패킷들이 공평한 비율(fair rate)로 무선 채널을 공유하도록 상기 패킷들을 스케줄링하는 단계를 포함할 수 있다.
상기 패킷들에 대한 폐기 및 스케줄링을 결정하는 단계는 상기 추정된 도달 시간에 기초하여 상기 패킷들의 폐기 여부를 결정하는 단계; 및 상기 결정에 따라 폐기되지 않은 패킷들을 상기 큐에 스케줄링하는 단계를 포함할 수 있다.
상기 패킷들의 폐기 여부를 결정하는 단계는 상기 추정된 도달 시간과 패킷의 실제 도착 시간 간의 편차(deviation) 및 채널 폐기 확률(channel dropping probability)에 기초하여, 상기 추정된 도달 시간을 위반한 패킷들의 폐기 여부를 결정하는 단계를 포함할 수 있다.
상기 패킷들의 폐기 여부를 결정하는 단계는 플로우 별 패킷에 대한 폐기 확률(flow drop probability) 및 가중 계수(drop probability weighting factor)에 기초하여, 상기 패킷들의 폐기 여부를 결정하는 단계를 포함할 수 있다.
상기 큐를 관리하는 방법은 상기 결정에 따라 폐기되지 않은 패킷들에 대한 상태 정보를 생성하는 단계; 및 상기 폐기되지 않은 패킷들에 대한 상태 정보를 저장하는 단계를 더 포함할 수 있다.
상기 패킷들을 스케줄링하는 단계는 무선 채널이 상기 플로우에 의해 공평하게 공유될 수 있도록 상기 플로우의 공평한 비율(fair rate)을 산출하는 단계; 및 상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들을 스케줄링하는 단계를 포함할 수 있다.
상기 플로우에 포함된 패킷들을 스케줄링하는 단계는 상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들의 폐기 확률을 산출하는 단계; 및 상기 패킷들의 폐기 확률에 기초하여 패킷들을 폐기하는 단계를 포함할 수 있다.
상기 큐는 조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)일 수 있다.
일 실시예에 따르면, 충돌 범위(collision range) 내의 다른 노드들로부터, 플로우 개수를 포함하는 플로우 정보를 수신하는 제어 플레인 프로세서(control plane processor); 플로우(flow)별 상태 정보를 유지하고, 상기 다른 노드로부터 수신한 플로우 정보 및 플로우 별 상태 정보에 기초하여 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하고, 상기 추정된 도달 시간에 기초하여 패킷들을 스케줄링하는 데이터 플레인 프로세서(data plane processor); 및 상기 스케줄링된 패킷들을 저장하는 큐(active queue)를 포함한다.
상기 데이터 플레인 프로세서는 상기 통신 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수에 기초한 유효 플로우 개수에 따라 상기 패킷들을 처리할 수 있다.
상기 데이터 플레인 프로세서는 상기 플로우 정보 및 상기 플로우 별 상태 정보에 기초하여 상기 각 플로우에 포함된패킷들 각각의 도달 시간을 추정하고, 추정된 도달 시간에 따라 상기 패킷들을 상기 큐에 스케줄링하는 입력 큐 프로세서(enqueue processor); 및 상기 입력 큐 프로세서에 입력되는 변수들을 관리하는 QoS 프로세서를 포함할 수 있다.
상기 변수들은 유효 플로우 개수, 상기 QoS 프로세서의 동작 구간 동안의 순간 수락 속도에 기초하여 계산되는 평균 수락 속도(average accepted rate), 상기 패킷들 각각의 추정된 도달 시간을 계산하는 데에 사용되는 잔여 속도(residual rate), 및 상기 입력 큐 프로세서에서 플로우 별 패킷에 대한 폐기 확률을 계산하는 데에 사용되는 채널 폐기 확률 중 적어도 하나를 포함할 수 있다.
상기 데이터 플레인 프로세서는 현재 타임 슬롯 또는 이전 타임 슬롯에서 아직 전송되지 않은 임의의 패킷이 있는 경우, 상기 큐로부터 상기 임의의 패킷을 패칭하여 전송하는 출력 큐 프로세서(dequeue processor)를 더 포함할 수 있다.
상기 입력 큐 프로세서는 상기 통신 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수를 기초로 유효 플로우 개수(effective flow number)를 산출하고, 상기 유효 플로우 개수에 기초하여 상기 패킷들 각각의 도달 시간을 추정할 수 있다.
상기 입력 큐 프로세서는 무선 채널이 상기 플로우에 의해 공평하게 공유될 수 있도록 상기 플로우의 공평한 비율(fair rate)을 산출하고, 상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들을 스케줄링할 수 있다.
상기 입력 큐 프로세서는 상기 플로우의 공평한 비율에 기초하여 상기 플로우 별 패킷에 대한 폐기 확률을 산출하고, 상기 플로우 별 패킷에 대한 폐기 확률에 기초하여 패킷들을 폐기할 수 있다.
상기 큐는 조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)일 수 있다.
일 실시예에 따르면, 무선 메쉬 네트워크에서 플로우에 포함된 패킷들 각각의 도달 시간을 추정하고, 추정된 도달 시간에 기초하여 큐에 패킷들을 스케줄링 함으로써 버퍼 블로트 문제를 해결할 수 있다.
일 실시예에 따르면, 플로우에 포함된 패킷들이 공평한 비율(fair rate)로 무선 채널을 공유하도록 스케줄링 함으로써 메쉬 네트워크에서 존재하는 RTT(Round Trip Time)의 공정성(Fairness) 문제를 해결 할 수 있다.
도 1은 일 실시예에 따른 통신 노드들을 포함하는 통신 환경을 나타낸 도면.
도 2는 일 실시예에 따른 통신 노드의 블록도.
도 3은 일 실시예에 따라 큐를 관리하기 위한 프레임워크(framework)를 나타낸 도면.
도 4는 일 실시예에 따른 입력 큐 프로세서의 동작을 나타낸 알고리즘의 프로그램 코딩을 도시한 도면.
도 5는 일 실시예에 따른 큐를 관리하는 방법을 나타낸 흐름도.
도 6은 일 실시예에 따라 패킷들 각각의 도달 시간을 추정하는 방법을 나타낸 흐름도.
도 7은 일 실시예에 따라 패킷들을 스케줄링하는 방법을 나타낸 흐름도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하에서, '통신 노드'는 예를 들어, 이동 단말, 액세스 포인트, 라우터, 허브 등과 같이 유, 무선 통신을 수행하는 다양한 통신 장치들을 포함하는 의미로 이해될 수 있다. 이하에서 '통신 노드'와 '노드'는 동일한 의미로 이해될 수 있다.
도 1은 일 실시예에 따른 통신 노드들이 동작하는 네트워크 환경을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 동일한 충돌 도메인(collision domain)에 속한 통신 노드들(110, 120, 130,140)이 도시된다.
예를 들어, 통신 노드들(110, 120, 130)이 통신 노드(140)에게 각각 10개의 플로우들(flows)을 전송한다고 하자. 이때, 플로우들(flows)은 TCP(Transmission Control Protocol) 플로우일 수도 있고, UDP(User Datagram Protocol) 플로우일 수도 있다.
통신 노드들(110, 120, 130) 중 통신 노드(110)가 통신 노드(140)에게 패킷(또는 프레임)을 전송하는 경우, 다른 통신 노드들(120, 130)과 충돌이 발생할 수 있다. 이때, 통신 노드(140)와 접속된 모든 통신 노드들(110, 120, 130)은 '동일한 충돌 범위' 또는 '동일한 충돌 도메인'에 있다고 말할 수 있다.
통신 노드들(110, 120, 130, 140)은 다중 무선 다중 채널 환경에서 통신할 수 있다. 통신 노드들(110, 120, 130, 140)은 무선 메시 네트워크 노드일 수 있다.
통신 노드들(110, 120, 130, 140)은 TCP 플로우 및 UDP 플로우가 혼합된 네트워크 환경에서 플로우 별 상태 정보를 관리 및 공유할 수 있다. 통신 노드들(110, 120, 130, 140)은 동일한 충돌 도메인에서 다른 노드들로부터 수신되는 활성 플로우의 총 개수에 따라 패킷의 도달 시간을 추정할 수 있다. 통신 노드들(110, 120, 130, 140)은 추정된 도달 시간에 기초하여 패킷들을 폐기하거나 또는 큐에 스케줄링할 수 있다. 통신 노드들(110, 120, 130, 140)은 패킷들을 무선 채널에 공평한 분배 비율로 스케줄링 함으로써 결과적으로 RTT(Round Trip Time) 공정성(fairness)가 개선되도록 할 수 있다.
도 2는 일 실시예에 따른 통신 노드의 블록도이다. 도 2를 참조하면, 일 실시예에 따른 통신 노드(200)는 제어 플레인 프로세서(control plane processor)(210), 데이터 플레인 프로세서(data plane processor)(230) 및 큐(active queue)(250)를 포함한다.
제어 플레인 프로세서(210)는 충돌 범위(collision range) 내의 다른 노드들로부터, 플로우 개수를 포함하는 플로우 정보를 수신한다. 제어 플레인 프로세서(210)는 해당 통신 노드의 플로우 정보를 다른 통신 노드들과 공유할 수 있다.
데이터 플레인 프로세서(230)는 플로우(flow)별 상태 정보를 유지하고, 다른 노드로부터 수신한 플로우 정보 및 (해당 통신 노드(200)의) 플로우 별 상태 정보에 기초하여 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정한다. 데이터 플레인 프로세서(230)는 추정된 도달 시간에 기초하여 패킷들을 스케줄링한다. 데이터 플레인 프로세서(230)는 통신 노드(200)에서 유지하는 플로우 개수 및 다른 노드들로부터 수신되는 활성 플로우들의 총 개수에 기초한 유효 플로우 개수에 따라 패킷들을 처리할 수 있다.
데이터 플레인 프로세서(230)는 입력 큐 프로세서(231), QoS 프로세서(233) 및 출력 큐 프로세서(235)를 포함한다.
입력 큐 프로세서(231)는 플로우 정보 및 플로우 별 상태 정보에 기초하여 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정할 수 있다. 입력 큐 프로세서(231)는 추정된 도달 시간에 따라 패킷들을 큐에 스케줄링할 수 있다. 입력 큐 프로세서(231)는 플로우 정보를 이용하여 각 패킷에 대한 스케줄링 타임을 산출할 수 있다.
입력 큐 프로세서(231)는 통신 노드(200)에서 유지하는 플로우 개수 및 다른 노드들로부터 수신되는 활성 플로우들의 총 개수를 기초로 유효 플로우 개수(effective flow number)를 산출할 수 있다. 입력 큐 프로세서(231)는 유효 플로우 개수에 기초하여 패킷들 각각의 도달 시간을 추정할 수 있다.
입력 큐 프로세서(231)는 무선 채널이 플로우에 의해 공평하게 공유될 수 있도록 플로우의 공평한 비율(fair rate)을 산출할 수 있다. 입력 큐 프로세서(231)는 플로우의 공평한 비율에 기초하여 플로우에 포함된 패킷들을 스케줄링할 수 있다.
입력 큐 프로세서(231)는 플로우의 공평한 비율에 기초하여 플로우 별 패킷에 대한 폐기 확률을 산출할 수 있다. 입력 큐 프로세서(231)는 플로우 별 패킷에 대한 폐기 확률에 기초하여 패킷들을 폐기할 수 있다.
QoS 프로세서(233)는 입력 큐 프로세서(231)에 입력되는 변수들을 관리할 수 있다. 변수들은 예를 들어, 유효 플로우 개수(effective flow number), 평균 수락 속도(average accepted rate), 잔여 속도(residual rate), 및 채널 폐기 확률(channel drop probability) 중 적어도 하나를 포함할 수 있다. QoS 프로세서(233)는 서비스 품질 관련 기능들(QoS-related functions)을 수행할 수 있다.
유효 플로우 개수(effective flow number)는 동일한 충돌 범위에 포함된 로컬 노드의 플로우 개수 및 이웃 노드들의 플로우의 개수를 포함할 수 있다. 다시 말해, 유효 플로우 개수는 동일한 충돌 범위에 포함된 모든 노드들의 플로우들의 총 개수로 이해될 수 있다.
평균 수락 속도(average accepted rate)은 패킷의 폐기 과정을 통과하고 스케줄링이 되는 패킷의 입력 속도를 의미한다. 평균 수락 속도는 QoS 프로세서(233)의 동작 구간 동안의 순간 수락 속도에 기초하여 계산될 수 있다.
잔여 속도(residual rate)는 전체 무선 인터페이스 전송 속도에서 평균 수락 속도를 뺀 값으로서 무선 인터페이스 전송 용량에서 사용되지 않은 용량을 의미한다. 잔여 속도는 패킷들 각각의 추정된 도달 시간을 계산하는 데에 사용될 수 있다.
채널 폐기 확률은 입력 패킷에 대한 무선 채널의 버퍼 점유율을 기반으로 계산된 패킷의 폐기를 결정하기 위한 확률값을 의미한다. 채널 폐기 확률은 입력 큐 프로세서(231)에서 플로우 별 패킷에 대한 폐기 확률을 계산하는 데에 사용될 수 있다.
QoS 프로세서(233)는 입력 큐 프로세서(231)를 위해 공유된 데이터 구조를 갱신할 수 있다.
출력 큐 프로세서(235)는 현재 타임 슬롯 또는 이전 타임 슬롯에서 아직 전송되지 않은 임의의 패킷이 있는 경우, 큐(250)로부터 임의의 패킷을 패칭하여 전송할 수 있다.
큐(250)는 스케줄링된 패킷들을 저장한다. 큐(250)는 조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)일 수 있다.
도 3은 일 실시예에 따라 큐를 관리하기 위한 프레임워크(framework)를 나타낸 도면이다. 도 3을 참조하면, 제어 플레인(310) 및 데이터 플레인(350)을 포함하는 프레임워크가 도시된다.
제어 플레인(310)은 제어 플레인 프로세서(315)를 포함한다. 제어 플레인 프로세서(315)는 플로우 정보를 동일한 충돌 범위에 있는 다른 노드들에게 전달(disseminating)할 수 있다. 제어 플레인 프로세서(315)는 동일한 충돌 범위에 있는 이웃 노드들과 플로우 정보의 보급 및 수신을 처리할 수 있다. 플로우 정보는 각 패킷에 대해 적절한 스케줄링 타임을 계산하는 입력 큐 프로세서에 사용된다.
실시예에 따라서, 통신 장치는 별도의 제어 플레인 프로세서(315)를 대신하여 하이브리드 무선 메쉬 프로토콜(Hybrid Wireless Mesh Protocol; HWMP)을 확장하여 사용할 수도 있다.
데이터 플레인(350)은 입력 큐 프로세서(351), QoS 프로세서(353), 및 출력 큐 프로세서(355)의 세 개의 프로세서들을 포함할 수 있다. 또한, 데이터 플레인(350)은 큐(357) 및 플로우 상태 테이블(359)을 포함할 수 있다.
입력 큐 프로세서(351), QoS 프로세서(353), 및 출력 큐 프로세서(355)의 세 개의 프로세서들은 동일 충돌 범위 내의 이웃 노드들로부터의 플로우를 포함하는 플로우들의 총 개수인 유효 플로우 개수("effective flow number")에 기초하여 패킷들을 직접 또는 간접적으로 처리한다.
입력 큐 프로세서(351)는 유효 플로우 개수를 고려하여 각 패킷들의 추정된 도달 시간(ETA)을 계산하고, 공정하게 채널을 공유할 수 있도록 추정된 도달 시간(ETA)에 따라 큐(357)로 패킷들을 스케줄링할 수 있다. 큐(357)는 조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue) 일 수 있다. 입력 큐 프로세서(351)의 동작에 대하여는 도 4의 알고리즘을 참조하여 구체적으로 설명한다.
QoS 프로세서(353)는 입력 큐 프로세서(351)에 입력되는 네 개의 변수들을 관리할 책임이 있다. 첫째, 유효 플로우 개수는 로컬 노드에서의 플로우의 개수 및 충돌 범위에서 이웃 노드들의 플로우의 개수를 조합함으로써 관리될 수 있다. 둘째, 평균 수락 속도 (average accepted rate)(v)은 QoS 프로세서(353)의 구간(예를 들어, 100ms) 동안의 순간 수락 속도(instant accepted rate)에 기초한 지수 이동 평균(exponential moving average)에 의해 주기적으로 계산된다. 셋째, 입력 큐 프로세서(351)에서 각 패킷의 추정된 도달 시간을 계산하는 데에 사용되는 잔여 속도(residual rate)(α)은 아래의 <수학식 1>과 같이 주어진다.
Figure pat00001
여기서, c는 무선 채널 전송률(wireless channel rate)이고, v 는 평균 수락 속도이다.
마지막으로, 입력 큐 프로세서(351)에서 플로우 i의 패킷에 대한 플로우 별 패킷에 대한 폐기 확률(flow drop probability) Pi 를 계산하는 데에 사용되는 채널 폐기 확률(channel drop probability)
Figure pat00002
는 아래의 <수학식 2>와 같이 구할 수 있다.
Figure pat00003
qlen 은 현재 큐 길이(current queue length)를 나타내고, min_ th 는 최소 임계치(minimum thresholds), max_ th 는 최대 임계치(maximum thresholds)를 나타낸다.
최소 임계치는 플로우의 총 개수가 곱해진 값으로서 평균 패킷 크기의 3배로 설정될 수 있다. 최대 임계치 또한 플로우의 총 개수가 곱해진 값으로서 평균 패킷 크기의 6배로 설정될 수 있다.
출력 큐 프로세서(355)는 아직 전송되지 않은 임의의 패킷이 있는 경우, 현재 시간의 타임 슬롯 또는 이전 시간의 타임 슬롯에서 큐(357)로부터 패칭(fetching) 이후에 패킷을 전송할 수 있다.
플로우 상태 테이블(359)은 다른 노드들로부터 제어 플레인 프로세서(315)를 통해 수신된 플로우 별 상태 정보를 저장할 수 있다.
도 4는 일 실시예에 따른 입력 큐 프로세서의 동작을 나타낸 알고리즘의 프로그램 코딩을 도시한 도면이다. 입력 큐 프로세서의 구체적인 동작은 도 4에 도시된 알고리즘과 같다.
무선 채널이 유효 플로우들에 의해 공정하게 공유될 수 있도록, 유효 플로우 i의 j 번째 패킷의 입력에서, 플로우의 공평한 비율(fair rate)(
Figure pat00004
)은 잔여 속도(α) 및 유효 플로우 개수(
Figure pat00005
)에 기초하여 계산된다(Line 4). 여기서, c는 무선 채널 전송률(wireless channel rate)을 나타낸다.
j 번째 패킷이 플로우 i의 첫번째 패킷이라면, 추정된 도달 시간(
Figure pat00006
)은 현재 시스템 타임(now)로 설정될 수 있다. 이때, 입력 큐 프로세서는 플로우에 대한 플로우 상태 정보를 생성한 후, 패킷이 즉시 전송되도록 할 수 있다.
하지만, 패킷이 기존의 플로우로부터 온 것이라면 패킷이 페어 쉐어(fair share)를 유지하는지 여부를 결정하기 위해 입력 큐 프로세서는 추정된 도달 시간(
Figure pat00007
)과 실제 도착 시간 간의 편차(δ) 및 평균 편차(δavg)를 계산할 수 있다(Lines 12 and 13).
추정된 도달 시간(
Figure pat00008
)과 실제 도착 시간 간의 편차(δ)가 0 보다 큰 경우는 패킷이 제 시간에 도착하거나, 또는 추정된 도달 시간(ETA) 보다 늦게 도착했음을 나타낸다. 이러하 경우, 패킷은 폐기(drop)될 필요가 없다.
한편, 편차(δ)가 0 보다 작거나 같은 경우는 실제 패킷이 추정된 도달 시간(ETA)보다 일찍 도착한 것을 의미한다. 이러한 경우 입력 큐 프로세서는 일찍 도착한 패킷을 폐기할 수 있다.
패킷의 폐기 결정은 플로우 별 패킷에 대한 폐기 확률 Pi에 의해 수행될 수 있다(Line 21). 플로우 별 패킷에 대한 폐기 확률(Pi)은 QoS 프로세서에 의해 주어지는 채널 폐기 확률(
Figure pat00009
) 및 (폐기 확률) 가중 계수(drop probability weighting factor)(ω)에 의해 계산될 수 있다.
가중 계수(ω)는 플로우 별 패킷에 대한 폐기 확률(Pi)에 대한 조절 장치(tuning knob)로 기능할 수 있다. 플로우 별 패킷에 대한 폐기 확률(Pi)은 각 플로우가 페어 쉐어(fare share)(또는 추정된 도달 시간(ETA))를 얼마나 엄밀히 유지하는지에 따라 제어될 수 있다. 페어 쉐어(fare share)는 평균 편차(δavg)에 대한 편차(δ)의 비율로 표현될 수 있다.
평균 편차(δavg)가 0 보다 큰 경우, 이는 평균 플로우가 그 공평한 비율을 유지함을 의미하므로 가중 계수(ω)는 '1'로 설정될 수 있다(Line 15,16).
플로우가 페어 쉐어 이상의 더 많은 패킷들을 전송하는 경우, 이는 플로우가 플로우의 평균 값보다 더 벗어남을 의미한다. 이에 따라 편차(δ)의 크기는 평균 편차(δavg)의 크기에 비해 커지게 되고, 플로우의 폐기 확률(Pi)은 공평한 비율을 유지하는 다른 통상의 플로우보다 더 큰 값으로 증가한다.
반면에, 프로우가 그 페어 쉐어보다 더 작은 패킷들을 전송하면, 플로우의 폐기 확률은 다른 정상 플로우들의 폐기 확률에 비해 작아진다.
폐기 확률 테스트를 통과한 패킷들, 다시 말해 폐기되지 않은 패킷들은 추정된 도달 시간(ETA) 값에 따라 가공된 후에 전송된다. 이는 이러한 무선 채널이 서로 다른 개수의 홉들을 통해 전달되는 다양한 소스들로부터 다중 플로우들에 의해 공정하게 공유되도록 기여한다.
도 5는 일 실시예에 따른 큐를 관리하는 방법을 나타낸 흐름도이다. 도 5를 참조하면, 일 실시예에 따른 통신 노드는 자신(해당 통신 노드)의 플로우 별 상태 정보를 유지한다(510).
통신 노드는 충돌 범위(collision range) 내의 다른 노드들로부터 수신되는 플로우 개수를 포함하는 플로우 정보를 수신한다(520). 다른 노드들로부터 수신되는 플로우(들)은 TCP 플로우(들) 또는 UDP 플로우(들)을 포함할 수 있다. 플로우 정보는 각 통신 노드에서의 활성 플로우(active flow)의 개수를 포함할 수 있다.
통신 노드는 플로우 정보 및 (해당 통신 노드의) 플로우 별 상태 정보에 기초하여, 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정한다(530). 통신 노드가 패킷들 각각의 도달 시간을 추정하는 방법은 도 6을 참조하여 설명한다.
통신 노드는 추정된 도달 시간(Estimated Time-of-Arrival; ETA)에 기초하여 패킷들에 대한 폐기, 및 큐로의 스케줄링을 결정한다(540). 통신 노드는 무선 채널이 활성 플로우들에 의해 공평하게 공유될 수 있도록, 다시 말해 플로우에 포함된 패킷들이 공평한 비율(fair rate)로 무선 채널을 공유하도록 패킷들을 스케줄링할 수 있다. 통신 노드는 추정된 도달 시간에 기초하여 패킷들의 폐기 여부를 결정하고, 결정에 따라 폐기되지 않은 패킷들을 큐에 스케줄링할 수 있다. 통신 노드가 패킷들에 대한 폐기, 및 큐로의 스케줄링을 포함하는 패킷들을 스케줄링하는 방법은 도 7을 참조하여 설명한다.
도 6은 일 실시예에 따라 패킷들 각각의 도달 시간을 추정하는 방법을 나타낸 흐름도이다. 도 6을 참조하면, 일 실시예에 따른 통신 노드는 다른 노드들에서의 활성 플로우들의 총 개수를 포함하는 플로우 정보 및 해당 통신 노드가 유지하는 플로우 개수를 기초로, 유효 플로우 개수(effective flow number)를 산출할 수 있다(610). 다른 노드들은 예를 들어, 동일한 충돌 도메인에 속한 이웃 노드들 및 로컬 노드들을 모두 포함할 수 있다.
통신 노드는 유효 프로우 개수에 기초하여 패킷들 각각의 도달 시간을 추정할 수 있다(620).
도 7은 일 실시예에 따라 패킷들을 스케줄링하는 방법을 나타낸 흐름도이다. 도 7을 참조하면, 일 실시예에 따른 통신 노드는 무선 채널이 플로우에 의해 공평하게 공유될 수 있도록 플로우의 공평한 비율(fair rate)을 산출할 수 있다(710). 통신 노드는 예를 들어, 잔여 속도(α) 및 유효 플로우의 개수에 기초하여 플로우의 공평한 비율을 산출할 수 있다. 통신 노드는 플로우의 공평한 비율에 기초하여 플로우에 포함된 패킷들을 스케줄링할 수 있다. 통신 노드는 패킷이 플로우의 공평한 비율을 유지하는지 여부(또는 패킷들이 추정된 도달 시간을 지키는지 여부)를 판단할 수 있다.
통신 노드는 플로우의 공평한 비율에 기초하여, 플로우에 포함된 패킷들의 폐기 확률, 다시 말해 플로우 별 패킷에 대한 폐기 확률을 산출할 수 있다(720).
통신 노드는 플로우 별 패킷에 대한 폐기 확률에 기초하여 패킷들을 폐기할 수 있다(730). 이때, 통신 노드는 추정된 도달 시간과 패킷의 실제 도착 시간 간의 편차(deviation) 및 채널 폐기 확률(dropping probability)에 기초하여, 상기 추정된 도달 시간을 위반한 패킷들의 폐기 여부를 결정할 수 있다. 채널 폐기 확률은 공유된 버퍼 상태, 다시 말해, 공유된 메모리 순환 큐(shared memory circular queue)의 상태에 기초하여 계산될 수 있다. 통신 노드는 추정된 도달 시간보다 일찍 도착한 패킷(들)을 폐기할 수 있다.
또한, 통신 노드는 플로우 별 패킷에 대한 폐기 확률(flow drop probability) 및 가중 계수(drop probability weighting factor)에 기초하여, 패킷들의 폐기 여부를 결정할 수 있다.
플로우 별 패킷에 대한 폐기 확률은 QoS 프로세서에 의해 주어지는 값으로서, 채널 폐기 확률에 기초할 수 있다. 플로우 별 패킷에 대한 폐기 확률은 각 플로우가 얼마나 공평한 비율을 잘 지키는지에 따라 제어될 수 있다. 플로우 별 패킷에 대한 폐기 확률은 추정된 도달 시간과 패킷의 실제 도착 시간 간의 편차(deviation) 및 평균 편차(δavg) 간의 비율에 의해 결정될 수 있다.
통신 장치는 폐기되지 않은 패킷들에 대한 상태 정보를 생성할 수 있다(740).
통신 장치는 폐기되지 않은 패킷들에 대한 상태 정보를 예를 들어, 플로우 상태 테이블 등에 저장할 수 있다(750).
통신 장치는 폐기되지 않은 패킷들을 큐에 스케줄링할 수 있다(760). 큐는 예를 들어, 조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)일 수 있다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 해당 노드의 플로우(flow)별 상태 정보를 유지하는 단계;
    충돌 범위(collision range) 내의 다른 노드들로부터, 플로우 개수를 포함하는 플로우 정보를 수신하는 단계;
    상기 다른 노드들로부터 수신한 플로우 정보 및 상기 해당 노드의 플로우 별 상태 정보에 기초하여, 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하는 단계; 및
    상기 추정된 도달 시간(Estimated Time-of-Arrival; ETA)에 기초하여, 상기 패킷들에 대한 폐기 및 큐로의 스케줄링을 결정하는 단계
    를 포함하는, 큐를 관리하는 방법.
  2. 제1항에 있어서,
    상기 도달 시간을 추정하는 단계는
    상기 해당 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수를 기초로 유효 플로우 개수(effective flow number)를 산출하는 단계; 및
    상기 유효 프로우 개수에 기초하여 상기 패킷들 각각의 도달 시간을 추정하는 단계
    를 포함하는, 큐를 관리하는 방법.
  3. 제1항에 있어서,
    상기 패킷들에 대한 폐기 및 스케줄링을 결정하는 단계는
    상기 플로우에 포함된 패킷들이 공평한 비율(fair rate)로 무선 채널을 공유하도록 상기 패킷들을 스케줄링하는 단계
    를 포함하는, 큐를 관리하는 방법.
  4. 제1항에 있어서,
    상기 패킷들에 대한 폐기 및 스케줄링을 결정하는 단계는
    상기 추정된 도달 시간에 기초하여 상기 패킷들의 폐기 여부를 결정하는 단계; 및
    상기 결정에 따라 폐기되지 않은 패킷들을 상기 큐에 스케줄링하는 단계
    를 포함하는, 큐를 관리하는 방법.
  5. 제4항에 있어서,
    상기 패킷들의 폐기 여부를 결정하는 단계는
    상기 추정된 도달 시간과 패킷의 실제 도착 시간 간의 편차(deviation) 및 채널 폐기 확률(channel dropping probability)에 기초하여, 상기 추정된 도달 시간을 위반한 패킷들의 폐기 여부를 결정하는 단계
    를 포함하는, 큐를 관리하는 방법.
  6. 제5항에 있어서,
    상기 패킷들의 폐기 여부를 결정하는 단계는
    플로우 별 패킷에 대한 패킷 폐기 확률(flow drop probability) 및 가중 계수(drop probability weighting factor)에 기초하여, 상기 패킷들의 폐기 여부를 결정하는 단계
    를 포함하는, 큐를 관리하는 방법.
  7. 제4항에 있어서,
    상기 결정에 따라 폐기되지 않은 패킷들에 대한 상태 정보를 생성하는 단계; 및
    상기 폐기되지 않은 패킷들에 대한 상태 정보를 저장하는 단계
    를 더 포함하는, 큐를 관리하는 방법.
  8. 제1항에 있어서,
    상기 패킷들을 스케줄링하는 단계는
    무선 채널이 상기 플로우에 의해 공평하게 공유될 수 있도록 상기 플로우의 공평한 비율(fair rate)을 산출하는 단계; 및
    상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들을 스케줄링하는 단계
    를 포함하는, 큐를 관리하는 방법.
  9. 제8항에 있어서,
    상기 플로우에 포함된 패킷들을 스케줄링하는 단계는
    상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들의 폐기 확률을 산출하는 단계; 및
    상기 패킷들의 폐기 확률에 기초하여 패킷들을 폐기하는 단계
    를 포함하는, 큐를 관리하는 방법.
  10. 제1항에 있어서,
    상기 큐는
    조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)인, 큐를 관리하는 방법.
  11. 제1항 내지 제10항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  12. 충돌 범위(collision range) 내의 다른 노드들로부터, 플로우 개수를 포함하는 플로우 정보를 수신하는 제어 플레인 프로세서(control plane processor);
    플로우(flow)별 상태 정보를 유지하고, 상기 다른 노드로부터 수신한 플로우 정보 및 플로우 별 상태 정보에 기초하여 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하고, 상기 추정된 도달 시간에 기초하여 패킷들을 스케줄링하는 데이터 플레인 프로세서(data plane processor); 및
    상기 스케줄링된 패킷들을 저장하는 큐(active queue)
    를 포함하는, 통신 노드.
  13. 제12항에 있어서,
    상기 데이터 플레인 프로세서는
    상기 통신 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수에 기초한 유효 플로우 개수에 따라 상기 패킷들을 처리하는, 통신 노드.
  14. 제12항에 있어서,
    상기 데이터 플레인 프로세서는
    상기 플로우 정보 및 상기 플로우 별 상태 정보에 기초하여 상기 각 플로우에 포함된 패킷들 각각의 도달 시간을 추정하고, 추정된 도달 시간에 따라 상기 패킷들을 상기 큐에 스케줄링하는 입력 큐 프로세서(enqueue processor); 및
    상기 입력 큐 프로세서에 입력되는 변수들을 관리하는 QoS 프로세서
    를 포함하는, 통신 노드.
  15. 제14항에 있어서,
    상기 변수들은
    유효 플로우 개수, 상기 QoS 프로세서의 동작 구간 동안의 순간 수락 속도에 기초하여 계산되는 평균 수락 속도(average accepted rate), 상기 패킷들 각각의 추정된 도달 시간을 계산하는 데에 사용되는 잔여 속도(residual rate), 및 상기 입력 큐 프로세서에서 플로우 별 패킷에 대한 폐기 확률을 계산하는 데에 사용되는 채널 폐기 확률 중 적어도 하나를 포함하는, 통신 노드.
  16. 제14항에 있어서,
    상기 데이터 플레인 프로세서는
    현재 타임 슬롯 또는 이전 타임 슬롯에서 아직 전송되지 않은 임의의 패킷이 있는 경우, 상기 큐로부터 상기 임의의 패킷을 패칭하여 전송하는 출력 큐 프로세서(dequeue processor)
    를 더 포함하는, 통신 노드.
  17. 제14항에 있어서,
    상기 입력 큐 프로세서는
    상기 통신 노드에서 유지하는 플로우 개수 및 상기 다른 노드들로부터 수신되는 활성 플로우들의 총 개수를 기초로 유효 플로우 개수(effective flow number)를 산출하고, 상기 유효 플로우 개수에 기초하여 상기 패킷들 각각의 도달 시간을 추정하는, 통신 노드.
  18. 제14항에 있어서,
    상기 입력 큐 프로세서는
    무선 채널이 상기 플로우에 의해 공평하게 공유될 수 있도록 상기 플로우의 공평한 비율(fair rate)을 산출하고, 상기 플로우의 공평한 비율에 기초하여 상기 플로우에 포함된 패킷들을 스케줄링하는, 통신 노드.
  19. 제14항에 있어서,
    상기 입력 큐 프로세서는
    상기 플로우의 공평한 비율에 기초하여 상기 플로우 별 패킷에 대한 폐기 확률을 산출하고, 상기 플로우 별 패킷에 대한 폐기 확률에 기초하여 패킷들을 폐기하는, 통신 노드.
  20. 제12항에 있어서,
    상기 큐는
    조절 가능한 크기의 다중 시간 슬롯들에 의해 구성된 공유된 메모리 순환 큐(shared memory circular queue)인, 통신 노드.
KR1020160024186A 2016-02-29 2016-02-29 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드 KR20170101537A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160024186A KR20170101537A (ko) 2016-02-29 2016-02-29 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드
US15/440,094 US20170250929A1 (en) 2016-02-29 2017-02-23 Method and apparatus for active queue management for wireless networks using shared wireless channel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160024186A KR20170101537A (ko) 2016-02-29 2016-02-29 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드

Publications (1)

Publication Number Publication Date
KR20170101537A true KR20170101537A (ko) 2017-09-06

Family

ID=59679052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160024186A KR20170101537A (ko) 2016-02-29 2016-02-29 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드

Country Status (2)

Country Link
US (1) US20170250929A1 (ko)
KR (1) KR20170101537A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102254714B1 (ko) * 2020-07-20 2021-05-25 영남대학교 산학협력단 5g 무선 액세스 네트워크를 위한 강화 학습 기반 적응적 속도 제어 방법, 이를 수행하기 위한 기록 매체 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109067665B (zh) * 2018-09-25 2022-01-11 华为技术有限公司 拥塞控制方法和网络设备
US20190155645A1 (en) * 2019-01-23 2019-05-23 Intel Corporation Distribution of network traffic to processor cores

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996062B1 (en) * 2001-02-28 2006-02-07 3Com Corporation Policy-based weighted random early detection method for avoiding congestion in internet traffic
KR20120055947A (ko) * 2010-11-24 2012-06-01 한국전자통신연구원 가입자 인지 플로우별 QoS 제공 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102254714B1 (ko) * 2020-07-20 2021-05-25 영남대학교 산학협력단 5g 무선 액세스 네트워크를 위한 강화 학습 기반 적응적 속도 제어 방법, 이를 수행하기 위한 기록 매체 및 장치

Also Published As

Publication number Publication date
US20170250929A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
US11588757B2 (en) Traffic management in a network switching system with remote physical ports
EP3764609B1 (en) Message sending method, network node and system
Costa et al. Age of information with packet management
US7729387B2 (en) Methods and apparatus for controlling latency variation in a packet transfer network
CN110166380B (zh) 调度报文的方法、第一网络设备及计算机可读存储介质
EP2720422A1 (en) Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4G IP network/equipment for better traffic performance
WO2019214561A1 (zh) 一种报文发送的方法、网络节点和系统
JP2011151601A (ja) パケット中継装置及びパケットを中継する方法
CN110086728B (zh) 发送报文的方法、第一网络设备及计算机可读存储介质
WO2020090474A1 (ja) パケット転送装置、方法、及びプログラム
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
US20180176144A1 (en) APPARATUS FOR SELF-REGULATER (SR) LAST-IN, FIRST-OUT (LIFO) SCHEDULING IN SOFTWARE DEFINED NETWORKS (SNDs) WITH HYBRID TRAFFIC
KR20170101537A (ko) 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드
Fountoulakis et al. Dynamic power control for packets with deadlines
Kashef et al. Real-time scheduling for wireless networks with random deadlines
US9722913B2 (en) System and method for delay management for traffic engineering
US8660001B2 (en) Method and apparatus for providing per-subscriber-aware-flow QoS
KR20120026352A (ko) 무선 네트워크에서의 패킷 전송 장치 및 방법
JP4973452B2 (ja) WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去
JP2015162719A (ja) 通信装置、通信方法及びプログラム
US10091268B2 (en) Hierarchal maximum information rate enforcement
Abdelli et al. Time Petri net based performance evaluation of traffic scheduling in WIMAX networks