KR20240000896A - 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치 - Google Patents

플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치 Download PDF

Info

Publication number
KR20240000896A
KR20240000896A KR1020220077669A KR20220077669A KR20240000896A KR 20240000896 A KR20240000896 A KR 20240000896A KR 1020220077669 A KR1020220077669 A KR 1020220077669A KR 20220077669 A KR20220077669 A KR 20220077669A KR 20240000896 A KR20240000896 A KR 20240000896A
Authority
KR
South Korea
Prior art keywords
flow
size
electronic device
priority
terminals
Prior art date
Application number
KR1020220077669A
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 KR1020220077669A priority Critical patent/KR20240000896A/ko
Priority to PCT/KR2023/005812 priority patent/WO2023249242A1/ko
Publication of KR20240000896A publication Critical patent/KR20240000896A/ko

Links

Images

Classifications

    • 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/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Apparatuses And Processes For Manufacturing Resistors (AREA)
  • Electrotherapy Devices (AREA)

Abstract

플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치가 개시된다. 다양한 실시예들에 전자 장치는 프로세서 및 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어가 실행될 때, 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하고, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고, 상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말로 전송할 수 있다.

Description

플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치{METHOD OF SCHEDULING FLOW AND ELECTRONIC DEVICE PERFORMING THE METHOD}
다양한 실시예들에 따른 플로우 스케줄링 방법, 및 상기 방법을 수행하는 전자 장치에 관한 것이다.
초저지연을 목표로 하는 5G 기술의 출현과 함께, 자율주행차량, 실시간 상호작용 게임, 몰입형 미디어 (VR, AR)과 같이 낮은 지연 서비스를 필요로 하는 어플리케이션이 등장하였다. 이러한 저지연 어플리케이션 사용자의 만족도와 서비스 품질(QoS)을 보장해주기 위해 모바일 엣지 컴퓨팅(MEC) 인프라가 등장하였다.
MEC 인프라는 단말과 서버 간의 지연 시간을 수 ms 이내로 줄일 수 있어 초저지연의 응용 서비스 제공이 가능하다. MEC는 기존의 public cloud service에 deploy되어 있는 원격 서비스를 이동 통신사가 5G Edge 내에 구축한 Edge cloud 내부에서 서비스를 운용하게 된다.
5G 네트워크에서는 대량연결을 지원함에 따라 단일 기지국(gNodeB)에 MEC 로부터 여러 사용자 단말(UE) 로 향하는 DL traffic(또는 UL traffic) 이 ingress 될 경우, 기지국 buffer 내의 queue build-up 이 발생하게 된다.
Queue build-up 이 일어날 경우, 사용자 단말(UE) 로 향하는 DL traffic(또는 UL traffic)의 packet이 기지국내에서의 queueing delay로 인해 RTT 가 증가하거나, 기지국내에서의 buffer overflow로 인한 packet drop 이 발생하여 재전송 (retransmission)으로 인한 flow completion time (FCT)의 증가를 야기할 수 있다.
다양한 실시예들에 따르면, 기지국에서 지연에 민감한 짧은 플로우(short flow)의 지연 시간을 감소시킬 수 있는 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치를 제공할 수 있다.
다양한 실시예들에 따르면, 단일 기지국(또는 전자 장치)에 서버(또는 MEC, mobile edge computing)로부터 복수의 단말로 향하는 다양한 트래픽이 입장(ingress)될 때, 지연에 민감한 짧은 플로우의 큐잉 딜레이(queueing delay)를 개선할 수 있는 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치를 제공할 수 있다.
다양한 실시예들에 따르면, 플로우에 대한 크기, QoQ(quality of service)에 대한 사전 정보 없이도, 지연에 민감한 짧은 플로우의 큐잉 딜레이를 개선할 수 있는 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치를 제공할 수 있다.
다양한 실시예들에 따른 전자 장치는 프로세서 및 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어가 실행될 때, 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하고, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고, 상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말로 전송할 수 있다.
다양한 실시예들에 따른 전자 장치는 프로세서 및 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어가 실행될 때, 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하고, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고, 상기 복수의 단말 각각에 대하여, 상기 우선 순위에 따른 상기 플로우의 FCT(flow completion time)를 최소화하도록 상기 복수의 단말로 상기 패킷을 전송하기 위한 리소스 블록을 할당하고, 할당된 상기 리소스 블록에 기초하여, 상기 우선 순위에 따라 상기 플로우의 패킷을 상기 복수의 단말로 전송할 수 있다.
다양한 실시예들에 따른 플로우 스케줄링 방법은 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하는 동작, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하는 동작, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하는 동작 및 상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말로 전송하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 서버(예: MEC)로부터 사용자 단말로 향하는 트래픽이 몰리더라도, 전자 장치(예: 기지국)에서는 짧은 플로우를 우선하여 처리함으로써, 전자 장치 버퍼(buffer)에서 발생하는 queue build-up을 감소시키고, 버퍼 오버플로우(buffer overflow)로 인한 패킷 로스(packet loss) 및 패킷 재전송(packet retransmission)을 감소시켜 RTT(round trip time)를 감소시킬 수 있다.
다양한 실시예들에 따르면, 큐잉 딜레이를 감소시켜 FCT를 감소시킬 수 있고, 지연에 민감한 어플리케이션 등에 높은 QoS를 제공할 수 있고, 짧은 플로우의 tail FCT 또한 감소시킬 수 있어, latency bound를 지킴으로써 최소 QoS 또는 SLA(service level agreement)를 보장할 수 있다.
도 1은 다양한 실시예들에 따른 전자 장치의 개략적인 블록도이다.
도 2는 다양한 실시예들에 따른 전자 장치가 플로우의 우선 순위를 결정하고, 리소스 블록을 할당하는 동작을 나타낸 도면이다.
도 3 내지 도 5는 다양한 실시예들에 따른 전자 장치가 전송한 패킷의 크기에 따라 플로우의 우선 순위를 결정하는 동작을 나타낸 도면이다.
도 6 내지 도 10은 다양한 실시예들에 따른 전자 장치가 미리 설정된 개수의 우선 순위에 따라, 플로우의 우선 순위를 결정하는 동작을 나타낸 도면이다.
도 11 및 도 12는 다양한 실시예들에 따른 전자 장치가 리소스 블록을 할당하는 동작을 나타낸 도면이다.
도 13은 다양한 실시예들에 따른 전자 장치가 플로우 스케줄링 방법을 수행하는 동작을 나타낸 도면이다.
도 14는 다양한 실시예들에 따른 전자 장치가 플로우 스케줄링 방법을 수행하는 동작을 나타낸 도면이다.
도 15는 다양한 실시예들에 따른 플로우 스케줄링 방법의 성능을 나타낸 도면이다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 다양한 실시예들에 따른 전자 장치(100)의 개략적인 블록도이다.
도 1을 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 RLC 레이어(120), MAC 레이어(130), PHY 레이어(140), 프로세서(미도시) 또는 메모리(미도시) 중 적어도 하나를 포함할 수 있다.
도 1을 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 서버(200)와 사용자 단말(300)과 통신 연결될 수 있다. 예를 들어, 전자 장치(100)는 서버(200)로부터 수신한 데이터를 사용자 단말(300)로 송신할 수 있다. 예를 들어, 전자 장치(100)는 사용자 단말(300)로부터 수신한 데이터를 서버(200)로 송신할 수 있다. 예를 들어, 서버(200)는 MEC(mobile edge computing 또는 multi-access edge computing) 서비스를 제공하기 위한 장치를 의미할 수 있다. 예를 들어, 전자 장치(100)는 단말(300)에 통신을 제공하는 통신 장치를 의미할 수 있고, 서버(200)는 기지국 내에 위치하는 MEC를 의미할 수 있다.
예를 들어, 전자 장치(100)는 사용자 단말(300)로 통신을 제공하기 위한 프로토콜 레이어(예: PDCP 레이어(110), RLC 레이어(120), MAC 레이어(130), PHY 레이어(140))를 포함할 수 있다. 예를 들어, 전자 장치(100)는 프로토콜 레이어를 이용하여 사용자 단말(300)로 통신을 제공할 수 있다. 예를 들어, 전자 장치(100)는 LTE 통신 방식 또는 5G 통신 방식(또는 NR 통신 방식)에 따라 사용자 단말(300)로 통신을 제공할 수 있다.
이하에서는, 전자 장치(100)가 서버(200)로부터 수신한 데이터를 사용자 단말(300)로 전송하는 다운링크(downlink) 동작을 중심으로 설명한다. 사용자 단말(300)로부터 수신한 데이터를 서버(200)로 전송하는 업링크(uplink) 동작은 다운링크 동작과 대칭 구조이기 때문에, 다운링크 동작에 대해서 설명한 내용은 실질적으로 동일하게 업링크 동작에 대해서 적용될 수 있다.
프로세서는, 예를 들면, 소프트웨어(예: 프로그램)를 실행하여 프로세서에 연결된 전자 장치(100)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서는 다른 구성요소(예: PDCP 레이어(110), RLC 레이어(120), MAC 레이어(130), PHY 레이어(140))로부터 수신된 명령 또는 데이터를 휘발성 메모리(미도시)에 저장하고, 휘발성 메모리에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(미도시)에 저장할 수 있다. 일실시예에 따르면, 프로세서는 메인 프로세서(미도시)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(미도시)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(100)가 메인 프로세서 및 보조 프로세서를 포함하는 경우, 보조 프로세서는 메인 프로세서보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서는 메인 프로세서와 별개로, 또는 그 일부로서 구현될 수 있다.
메모리는, 전자 장치(100)의 적어도 하나의 구성요소(예: 프로세서 또는 RLC 레이어(120), MAC 레이어(130))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다.
일례로, PDCP 레이어(110)(packet data convergence protocol layer)는 IP 패킷 헤더 압축, 제어 메시지 및 사용자 데이터의 암호화, 데이터 무결성 보호 및 확인, 사용자 평면(user plane) 또는 제어 평면(control plane)으로 데이터 전송, 시퀀스 넘버링(sequence numbering)을 수행할 수 있다.
일례로, RLC 레이어(120)(radio link control layer)는 복수의 단말(UE)의 버퍼(buffer)를 관리할 수 있다. 예를 들어, DL 패킷(downlink packet)이 전자 장치(100)에 들어오면(ingress), 패킷은 버퍼에 인큐/디큐(enqueue/dequeue) 될 수 있다. 버퍼에 인큐된 패킷은 처리 순서에 따라 단말에 전송되고, 전송이 완료된 패킷은 버퍼에서 디큐될 수 있다.
예를 들어, 전자 장치(100)의 RLC 레이어(120)는 사용자 단말(300) 각각에 관하여 버퍼를 설정할 수 있다. RLC 레이어(120)는 각 사용자 단말(300)의 버퍼에 DL 패킷이 입력(ingress)되면, 패킷 검사(packet inspection)을 수행할 수 있다. 예를 들어, RLC 레이어(120)는 입력된 패킷에 대하여 패킷 검사를 수행하여, 5-tuple 정보(예: src ip, src port, dst ip, dst port, protocol)을 추출할 수 있다. RLC 레이어(120)는 추출한 5-tuple 정보를 이용하여, 패킷이 해당하는 플로우를 식별할 수 있다.
일례로, 패킷 검사는 전자 장치(100)의 RLC 레이어(120) 또는 외부 전자 장치(예: PGW, packet gateway)에서 수행될 수 있다. 예를 들어, 외부 전자 장치에서 패킷 검사가 수행되는 경우, 전자 장치(100)는 외부 전자 장치로부터 5-tuple 정보를 수신하여, 패킷에 해당하는 플로우를 식별할 수 있다.
예를 들어, 전자 장치(100)의 RLC 레이어(120)는 미리 설정된 주기마다 플로우에 따라 전송한 패킷의 크기를 식별할 수 있다. 예를 들어, RLC 레이어(120)는 플로우 별로 현재까지 전송된 패킷의 크기를 식별할 수 있다. 예를 들어, RLC 레이어(120)는 플로우 별로 현재까지 서비스된 바이트(byte) 수가 얼마인지 계산하여, 플로우의 서비스 상태(per-flow state)를 관리할 수 있다.
예를 들어, 미리 설정된 주기는 스케줄링 TTI(scheduling transmission time interval)을 의미할 수 있다. 예를 들어, 전자 장치(100)가 LTE 통신 방식에 따라 사용자 단말(300)과 데이터를 송수신하는 경우, 스케줄링 TTI는 1ms일 수 있다.
예를 들어, 전자 장치(100)의 RLC 레이어(120)는 전송한 패킷의 크기에 기초하여, 버퍼 내의 플로우의 우선 순위를 결정할 수 있다. 예를 들어, RLC 레이어(120)는 플로우에 대하여 전송한 패킷의 크기가 작을수록, 플로우의 우선 순위를 높게 결정할 수 있다. 예를 들어, 플로우의 우선 순위가 높은 것은, 해당 사용자 단말(300)의 버퍼 내에서 우선 순위가 높고, 처리 순서가 빠른 것을 의미할 수 있다.
예를 들어, 전자 장치(100)의 RLC 레이어(120)는 결정한 플로우의 우선 순위에 따라, 플로우의 패킷을 사용자 단말(300)로 전송하도록 할 수 있다. 예를 들어, 전송한 패킷의 크기가 작은 플로우의 우선 순위를 높게 결정함으로써, 전자 장치(100)는 짧은 플로우의 FCT(flow completion time)을 줄일 수 있다.
종래 플로우 스케줄링 방법은, 짧은 플로우가 버퍼에 인큐될 때, 긴 플로우(long flow)가 버퍼에 먼저 인큐되어 있는 경우, 짧은 플로우는 긴 플로우의 전송이 완료된 이후 처리되어, 짧은 플로우의 처리가 지연될 수 있다. 전자 장치(100)의 RLC 레이어(120)는 전송한 패킷의 크기가 작은 짧은 플로우의 우선 순위를 높게 결정하여, 짧은 플로우의 지연 시간을 감소시킬 수 있다.
다양한 실시예들에 따른 전자 장치(100)는, 플로우에 대한 사전 정보(예: QoS) 및/또는 룰 셋(rule set)이 없는 경우에도, 짧은 플로우의 지연 시간을 감소시킬 수 있다. 예를 들어, 룰 셋은 특정된 QoS 레벨에 따라 플로우의 우선 순위를 결정하는 규칙을 의미할 수 있다.
예를 들어, 전자 장치(100)는 플로우에 대하여 전송한 패킷의 크기에 기초하여 플로우의 우선 순위를 결정하기 때문에, 플로우에 대한 사전 정보 및/또는 룰 셋이 없는 경우에도, 지연 시간에 민감한 짧은 플로우의 지연 시간을 감소시킬 수 있다.
플로우에 대한 사전 정보 및/또는 룰 셋이 있는 경우에도, 플로우의 크기를 고려하지 않고 플로우의 우선 순위를 결정하기 때문에, 짧은 플로우의 지연 시간이 커질 수 있다. 예를 들어, 전자 장치(100)는 전송한 패킷의 크기에 기초하여 플로우의 우선 순위를 결정하기 때문에, 짧은 플로우의 지연 시간을 감소시킬 수 있다.
일례로, 전자 장치(100)의 MAC 레이어(130)(media access control layer)는 통신을 위한 자원을 사용자 단말(300)에 할당 및/또는 스케줄링 할 수 있다. 예를 들어, MAC 스케줄러(131)는 전자 장치(100)에서 사용자 단말(300)과 통신을 위한 가용 대역폭을 사용자 단말(300)에 할당할 수 있다. 예를 들어, 전자 장치(100)의 MAC 레이어(130)는 리소스 블록(resource block)을 사용자 단말(300)에 할당할 수 있다. 예를 들어, 전자 장치(100)가 리소스 블록을 사용자 단말(300)에 할당하는 것은, resource block level scheduling을 의미할 수 있다.
예를 들어, 전자 장치(100)의 MAC 레이어(130)는 복수의 사용자 단말(300)에 플로우가 도달하는데 걸리는 시간(air time)을 고려하여, 리소스 블록을 할당할 수 있다. 예를 들어, MAC 레이어(130)는 복수의 사용자 단말(300) 각각에 대한 예상 전송률(achievable rate) 또는 플로우에 대하여 전송한 패킷의 크기 중 적어도 하나에 기초하여, 리소스 블록을 할당할 수 있다.
예를 들어, MAC 레이어(130)는 설정된 시간마다 복수의 사용자 단말(300)에 대한 CQI 지수를 식별할 수 있다. CQI는 사용자 단말(300)과 전자 장치(100)간의 채널 상태에 따른 지수를 의미할 수 있다. 예를 들어, 전자 장치(100)는 CQI 지수, MCS(modulation and coding scheme)에 따라, 스펙트럼 효율(spectral efficiency)을 계산할 수 있다. 전자 장치(100)는 스펙트럼 효율에 기초하여, 각 리소스 블록에 따른 예상 전송률을 계산할 수 있다.
예를 들어, MAC 레이어(130)는 리소스 블록에 대한 예상 전송률이 높고, 플로우에 대하여 전송한 패킷의 크기가 작은 사용자 단말(300)에 리소스 블록을 할당할 수 있다. 전송한 패킷의 크기를 판단하기 위한 플로우는 복수의 단말에서 우선 순위가 가장 높은 플로우를 의미할 수 있다.
예를 들어, MAC 레이어(130)는, 복수의 단말 중에서 플로우에 대하여 전송한 패킷의 크기에 대한 예상 전송률의 크기의 비가 가장 큰 단말에 대하여 리소스 블록을 할당할 수 있다.
일례로, 도 1에 도시된 프로토콜 스택은 PDCP 레이어(110), RLC 레이어(120), MAC 레이어(130), PHY 레이어(140)를 포함할 수 있다. 예를 들어, 전자 장치(100)는 프로토콜 스택을 이용하여, 설정된 통신 방식(예: LTE, NR 등)에 따라 사용자 단말(300)과 데이터를 송수신할 수 있다.
일례로, 전자 장치(100)의 프로토콜 스택은 도 1에 도시되지 않은 레이어를 더 포함할 수 있다. 일례로, 전자 장치(100)의 프로토콜 스택에 관하여 설명하지 않은 내용이라 하더라도, 프토토콜 스택에 관하여 공지된 내용이 실질적으로 동일하게 적용될 수 있다.
예를 들어, 전자 장치(100)의 PDCP 레이어(110)는, 유저 평면(user plane)에서 암호화 및 복호화(ciphering and deciphering), 헤더 압축 및 압축 해제(header compression and decompression)를 수행하거나, 제어 평면(control plane)에서 PDCP PDU 복제를 수행하는 것과 같은 동작을 수행할 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))가 플로우의 우선 순위를 결정하고, 리소스 블록을 할당하는 동작을 나타낸 도면이다.
도 2를 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 복수의 단말(300-1, 300-2, ..., 300-n)(예: 도 1의 사용자 단말(300)) 각각에 대하여, 플로우의 우선 순위를 결정할 수 있다. 예를 들어, 전자 장치(100)의 RLC 레이어(120)는 복수의 단말(300-1, 300-2, ..., 300-n) 각각의 플로우에 대하여 임시 버퍼를 설정하고, 플로우의 우선 순위를 결정할 수 있다.
예를 들어, 사용자 단말 1(300-1)(예: 도 2의 UE1)에 대하여, 전자 장치(100)는 플로우 별로 임시 버퍼를 설정할 수 있다. 예를 들어, 도 2와 같이, 전자 장치(100)는 플로우 별로 설정된 임시 버퍼의 우선 순위(예: 도 2의 p1, p2, ...)를 결정할 수 있다. 임시 버퍼의 우선 순위는 임시 버퍼에 대응하는 플로우에 대하여 전송한 패킷의 크기에 기초하여 결정될 수 있다.
예를 들어, 도 2에서 각 단말(300-1, 300-2, ..., 300-n)의 버퍼(150-1, 150-2, ..., 150-n) 내의 가장 왼쪽에 위치하는 플로우의 우선 순위가 가장 높은 것을 의미할 수 있다. 예를 들어, 도 2는 사용자 단말 1(300-1)에서, 플로우 1에 대하여 전송한 패킷의 크기가 가장 작고, 사용자 단말 2(300-2)에서, 플로우 2에 대하여 전송한 패킷의 크기가 가장 작고, 사용자 단말 n(300-n)에서 플로우 1에 대하여 전송한 패킷의 크기가 가장 작은 것을 의미할 수 있다.
예를 들어, 전자 장치(100)는 버퍼 상태(buffer state), 플로우 크기 정보(flow size information) 또는 플로우 별 상태(per-flow state) 중 적어도 하나를 식별할 수 있다. 예를 들어, 플로우 별 상태는 플로우에 대하여 전송한 패킷의 크기를 포함할 수 있다.
일례로, 전자 장치(100)는 복수의 단말(300-1, 300-2, ..., 300-n) 각각에 대하여, 우선 순위에 따른 플로우의 FCT를 최소화하도록, 복수의 단말로 패킷을 전송하기 위한 리소스 블록을 할당할 수 있다. 예를 들어, 전자 장치(100)는 복수의 단말(300-1, 300-2, ..., 300-n) 각각의 예상 전송률 및 플로우에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록을 할당할 수 있다.
예를 들어, MAC 레이어(130)는 PHY 레이어(140)로부터 설정된 주기(예: 1ms)마다 CQI를 식별할 수 있다. 예를 들어, 전자 장치(100)는 CQI에 기초하여, 리소스 블록에 대한 복수의 단말(300-1, 300-2, ..., 300-n) 각각의 예상 전송률을 계산할 수 있다.
도 2는 20 MHz의 대역폭(bandwidth)에서 각각 100개의 리소스 블록을 갖는 리소스 블록 그룹(RBG, resource block group)을 복수의 단말(300-1, 300-2, ..., 300-n)에 할당하는 예를 나타낸 도면이다. 예를 들어, MAC 레이어(130)의 MAC 스케줄러(131)는 리소스 블록을 복수의 단말(300-1, 300-2, ..., 300-n)에 할당할 수 있다. 예를 들어, 리소스 블록 그룹 C1에 대하여, MAC 레이어(130)는 복수의 단말(300-1, 300-2, ..., 300-n) 각각의 예상 전송률 및 플로우에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록 그룹 C1을 사용자 단말 1(300-1)에 할당할 수 있다.
예를 들어, MAC 레이어(130)는 복수의 단말(300-1, 300-2, ..., 300-n) 각각에서 우선 순위가 가장 높은 플로우들에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록을 할당할 수 있다. 예를 들어, MAC 레이어(130)는 사용자 단말 1(300-1)의 플로우 1, 사용자 단말 2(300-2)의 플로우 2, ..., 사용자 단말 n(300-n)의 플로우 1에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록을 할당할 수 있다.
도 2와 같이, 전자 장치(100)는 RLC 레이어(120)에서 결정한 플로우의 우선 순위에 따라 복수의 단말(300-1, 300-2, ..., 300-n) 각각에 패킷을 전송할 수 있다. 전자 장치(100)는 MAC 레이어(130)에서 예상 전송률 및 플로우에 대하여 전송한 패킷의 크기에 기초하여, 복수의 단말(300-1, 300-2, ..., 300-n) 각각의 플로우에 대한 FCT를 최소화하도록, 리소스 블록을 할당할 수 있다.
도 3 내지 도 5는 다양한 실시예들에 따른 전자 장치(100)가 전송한 패킷의 크기에 따라 플로우의 우선 순위를 결정하는 동작을 나타낸 도면이다.
이하의 설명에서, 버퍼(150)의 하단에 인큐된 플로우의 우선 순위는 상단에 인큐된 플로우의 우선 순위보다 높은 것을 의미할 수 있다. 예를 들어, 도 3에서 플로우 1(161-1, 161-2)의 우선 순위가 가장 높고, 플로우 3(163)의 우선 순위가 가장 낮은 것을 의미할 수 있다.
이하의 설명에서, 도시된 플로우의 수는 플로우의 사이즈를 의미할 수 있다. 예를 들어, 도 3에서 플로우 1(161-1, 161-2)의 사이즈는 2, 플로우 2(162)와 플로우 3(163)의 사이즈는 1을 의미할 수 있다.
도 3은 일 실시 예에 따른 RLC 레이어(예: 도 1의 RLC 레이어(120))가 단말에 대응하여 설정한 버퍼(150)를 나타낸 도면이다.
도 3과 같이 RLC 레이어(120)는 입력된 패킷의 플로우를 식별할 수 있다. RLC 레이어(120)는 식별한 플로우를 버퍼에 인큐시킬 수 있다. 예를 들어, 도 3과 같이, RLC 레이어(120)는 버퍼(150)에 인큐된 순서에 따라 플로우 1(161-1, 161-2), 플로우 2(162), 플로우 3(163)이 입력될 수 있다.
도 3과 같이, RLC 레이어(120)의 버퍼(150)에 플로우가 인큐되는 경우, 짧은 플로우의 지연 시간이 증가할 수 있다. 예를 들어, FIFO(first input first out) 방식에 따라 플로우의 패킷을 단말로 전송하는 경우, 도 3에서 짧은 플로우인 플로우 2(162) 및 플로우 3(163)은 플로우 1(161-1, 161-2)의 전송이 완료되어 디큐된 후에 단말로 전송될 수 있다. 플로우 2(162) 및 플로우 3(163)은 플로우 1(161-1, 161-2)의 전송 시간으로 인하여, head-of-line blocking이 발생할 수 있다. 예를 들어, 플로우 2(162)는 플로우 1(161-1, 161-2)의 FCT만큼 FCT가 증가하게 되고, 플로우 3(163)의 FCT는 플로우 1(161-1, 161-2) 및 플로우 2(162)의 FCT 만큼 FCT가 증가하게 된다.
도 4는 다양한 실시예들에 따른 RLC 레이어(120)가 각 플로우에 대응하여 설정한 임시 버퍼(155-1, 155-2, 155-3)를 나타낸 도면이다. 예를 들어, 도 4에서 임시 버퍼(155-1)은 플로우 2(162)에 대응하고, 임시 버퍼(155-2)는 플로우 3(163), 임시 버퍼(155-3)는 플로우 1(161-1, 161-2)에 대응할 수 있다.
일례로, 전자 장치(100)의 RLC 레이어(120)는 버퍼 상태, 플로우 사이즈 정보 또는 플로우 별 상태 중 적어도 하나를 식별할 수 있다. 전자 장치(100)는 플로우 별 서비스된 바이트 크기 또는 플로우 별 전송한 패킷의 크기를 식별할 수 있다.
일례로, 전자 장치(100)는 전송한 패킷의 크기에 기초하여, 버퍼 내의 플로우의 우선 순위를 결정할 수 있다. 예를 들어, 임시 버퍼(155-1)에 대응하는 플로우 2(162)의 전송한 패킷의 크기가 가장 작고, 임시 버퍼(155-3)에 대응하는 플로우 1(161-1, 161-2)의 전송한 패킷의 크기가 가장 클 수 있다. 예를 들어, 도 4는 플로우(161-1, 161-2, 162, 163)에 대하여 전송한 패킷의 크기의 오름차순으로, 좌측에서 우측으로 임시 버퍼(155-1, 155-2, 155-3)를 정렬한 것으로 이해할 수 있다.
일례로, 도 4에서 임시 버퍼(155-1, 155-2, 155-3) 또는 플로우(161-1, 161-2, 162, 163)의 우선 순위는 전송한 패킷의 크기에 기초하여 결정될 수 있다. 예를 들어, 전자 장치(100)는 플로우(161-1, 161-2, 162, 163)에 대하여 전송한 패킷의 크기가 클수록 플로우(161-1, 161-2, 162, 163)의 우선 순위를 낮게 결정할 수 있다. 예를 들어, 전자 장치(100)는 플로우(161-1, 161-2, 162, 163)에 대하여 전송한 패킷의 크기가 작을수록, 플로우(161-1, 161-2, 162, 163)의 우선 순위를 높게 결정할 수 있다.
예를 들어, 도 4에서 전송한 패킷의 크기가 가장 작은 플로우 2(162)의 우선 순위가 가장 높고, 전송한 패킷의 크기가 가장 큰 플로우 1(161-1, 161-2)의 우선 순위가 가장 낮을 수 있다. 예를 들어, 도 4에서 전자 장치(100)는 플로우 2(162)-플로우 3(163)-플로우 1(161-1, 161-2) 순서대로 우선 순위가 낮아지도록, 플로우의 우선 순위를 결정할 수 있다.
도 5는 다양한 실시예들에 따른 전자 장치(100)가 결정한 플로우(161-1, 161-2, 162, 163)의 우선 순위를 나타낸 도면이다.
도 4에서 전자 장치(100)가 결정한 플로우(161-1, 161-2, 162, 163)의 우선 순위에 따라, 전자 장치(100)는 도 5와 같이 버퍼(150) 내의 플로우(161-1, 161-2, 162, 163)의 우선 순위를 결정할 수 있다.
도 3에 도시된 버퍼(도 3의 150) 내의 플로우(161-1, 161-2, 162, 163)와 비교할 때, 도 5에 도시된 버퍼(도 5의 150) 내의 플로우는 플로우 2(162)-플로우 3(163)-플로우 1(161-1, 161-2) 순서대로 단말로 전송될 수 있다. 전자 장치(100)는 짧은 플로우인 플로우 2(162) 및 플로우 3(163)을 긴 플로우인 플로우 1(161-1, 161-2)보다 우선 순위를 높게 결정하여, 플로우 2(162) 및 플로우 3(163)의 FCT가 플로우 1(161-1, 161-2)의 FCT만큼 지연되는 것을 방지할 수 있다.
상기 도 3 내지 도 5에 설명된 전자 장치(100)가 수행하는 플로우 스케줄링 방법은, 플로우의 서비스된 패킷의 크기에 기초하여 수행하는 스케줄링 방법으로, LAS 스케줄링(least attained service scheduling)으로 호칭될 수 있다.
일례로, 전자 장치(100)는 설정된 시간(예: 스케줄링 TTI)마다 상기 도 3 내지 도 5에 도시된 동작을 수행할 수 있다. 예를 들어, 전자 장치(100)는 설정된 시간마다 플로우를 특정하여 버퍼에 인큐시키고, 플로우 별 전송한 패킷의 크기에 따라 우선 순위를 결정할 수 있다.
상기 도 3 내지 도 5를 참조하면, 전자 장치(100)는 획득된 서비스 메트릭(attained service metric) 또는 전송된 바이트 메트릭(sent bytes metric)을 기준으로, 엄격한 우선 순위 스케줄링(strict priority scheduling)을 수행하여, 플로우의 우선 순위를 재정렬할 수 있다. 예를 들어, 전자 장치(100)의 RLC 레이어(120)는, 현재까지 서비스된 바이트의 크기를 기준으로, 짧을 플로우 일수록 높은 우선 순위로 스케줄링 할 수 있다.
도 6 내지 도 10은 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))가 미리 설정된 개수의 우선 순위에 따라, 플로우의 우선 순위를 결정하는 동작을 나타낸 도면이다.
도 6 내지 도 10에서, 미리 설정된 개수(예: 3개)의 임시 버퍼(156-1, 156-2, 156-3)의 우선 순위가 설정될 수 있다. 예를 들어, 도 6 내지 도 8에서, 임시 버퍼(156-1)의 우선 순위가 가장 높고, 임시 버퍼(156-3)의 우선 순위가 가장 낮을 수 있다. 예를 들어, 도 6 내지 도 8에서 임시 버퍼(156-1)-임시 버퍼(156-2)-임시 버퍼(156-3) 순서대로 대응하는 우선 순위가 낮아질 수 있다.
도 6은 다양한 실시예들에 따른 미리 설정된 개수의 임시 버퍼에 인큐된 플로우(161-1, 161-2, 162, 163)를 나타낸 도면이다. 도 6과 같이, 전자 장치(100)는 버퍼에 인큐된 플로우 순서대로, 임시 버퍼(156-1)에 플로우(161-1, 161-2, 162, 163)를 인큐할 수 있다.
예를 들어, 도 6과 같이, 플로우 1(161-1, 161-2)-플로우 2(162)-플로우 3(163) 순서대로 버퍼에 플로우가 인큐된 경우, 전자 장치(100)는 임시 버퍼(156-1)에 플로우 1(161-1, 161-2)-플로우 2(162)-플로우 3(163) 순서대로 플로우를 인큐할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치(100)가 플로우에 대하여 전송한 패킷의 크기에 따라 플로우의 우선 순위를 결정하는 동작을 나타낸 도면이다.
예를 들어, 임시 버퍼(156-1, 156-2, 156-3)는 각각 전송한 패킷의 크기를 기준으로 구분될 수 있다. 예를 들어, 임시 버퍼(156-1, 156-2, 156-3)에 설정된 우선 순위는 각각 전송한 패킷의 크기를 기준으로 구분될 수 있다. 예를 들어, 임시 버퍼(156-1)는 전송한 패킷의 크기가 A 이하인 플로우가 인큐될 수 있다. 예를 들어, 임시 버퍼(156-2)는 전송한 패킷의 크기가 A 초과, B 이하인 플로우가 인큐될 수 있다. 예를 들어, 임시 버퍼(156-3)는 전송한 패킷의 크기가 B를 초과하는 플로우가 인큐될 수 있다.
예를 들어, 도 6에서 전자 장치(100)가 플로우 1(161-1, 161-2)의 패킷을 단말로 전송할 수 있다. 도 6에서, 전자 장치(100)가 플로우 1(161-1, 161-2)의 패킷을 단말로 전송하는 경우, 플로우 1(161-1, 161-2) 내지 플로우 3(163)의 우선 순위는 동일할 수 있고, 인큐된 순서에 따라 플로우의 패킷을 단말로 전송할 수 있다.
일례로, 전자 장치(100)는 전송한 패킷의 크기가 증가하면, 플로우가 인큐된 임시 버퍼(156-1, 156-2, 156-3)를 변경할 수 있다. 예를 들어, 전자 장치(100)가 플로우 1(161-1, 161-2)의 패킷을 단말로 전송하여, 플로우 1(161-1, 161-2)의 전송한 패킷의 크기가 A 초과, B 이하가 되면, 전자 장치(100)는 도 7과 같이, 플로우 1(161-1, 161-2)을 임시 버퍼(156-2)에 인큐할 수 있다.
도 7에서, 전자 장치(100)는 플로우 2(162)의 패킷을 단말로 전송할 수 있다. 예를 들어, 도 7에서 플로우 2(162) 및 플로우 3(163)의 우선 순위가 높고, 플로우 1(161-1, 161-2)의 우선 순위는 가장 낮을 수 있다. 도 7에서, 전자 장치(100)는 우선 순위가 높고, 먼저 인큐된 플로우 2(162)의 패킷을 단말로 전송할 수 있다.
도 8은 도 7에서 플로우 2(162)의 전송이 완료되고, 새로운 플로우 4(164)가 인큐된 경우, 전자 장치(100)가 설정한 임시 버퍼(156-1, 156-2, 156-3)를 나타낸 도면이다. 플로우 2(162)의 패킷 전송이 완료되어, 플로우 2(162)가 디큐되고, 플로우 4(164)가 임시 버퍼(156-1)에 인큐될 수 있다.
도 9는 도 8에서 플로우 3(163)의 전송한 패킷의 크기가 A 초과, B 이하가 된 경우, 전자 장치(100)가 설정한 임시 버퍼(156-1, 156-2, 156-3)를 나타낸 도면이다. 도 9에서, 플로우 3(163)은 임시 버퍼(156-2)에 인큐될 수 있다. 도 9에서, 전자 장치(100)는 우선 순위가 가장 높은 임시 버퍼(156-1)에 인큐된 플로우 4(164)의 패킷을 단말로 전송할 수 있다.
도 10은 도 9에서 플로우 4(164)의 패킷 전송이 완료되고, 플로우 1(161-1, 161-2)의 패킷을 단말로 전송한 경우, 전자 장치(100)가 설정한 임시 버퍼(156-1, 156-2, 156-3)를 나타낸 도면이다. 도 9에서 플로우 4(164)의 패킷 전송이 완료되어, 플로우 4(164)가 디큐되면, 전자 장치(100)는 플로우 1(161-1, 161-2)의 패킷을 단말로 전송할 수 있다. 플로우 1(161-1, 161-2)의 전송한 패킷의 크기가 B를 초과하면, 전자 장치(100)는 플로우 1(161-1, 161-2)을 임시 버퍼(156-3)에 인큐시킬 수 있다. 도 10에서 전자 장치(100)는 우선 순위가 가장 높은 플로우 3(163)의 패킷을 단말로 전송할 수 있다.
상기의 도 6 내지 도 10에서, 전자 장치(100)는 임시 버퍼(156-1, 156-2, 156-3)에 인큐된 플로우에 기초하여, 도 3 또는 도 5에 도시된 버퍼와 같이, 플로우의 우선 순위에 따라 플로우를 정렬할 수 있다. 도 6 내지 도 10과 같이, 긴 플로우에 해당하는 플로우 1(161-1, 161-2)은 늦게 전송이 완료됨에 반하여, 짧은 플로우인 플로우 2(162) 및 플로우 4(162)는 전송이 빨리 완료되어, 짧은 플로우의 FCT가 감소될 수 있다.
도 6 내지 도 10과 같이, 전자 장치(100)는 미리 설정된 개수의 임시 버퍼(156-1, 156-2, 156-3)를 설정할 수 있다. 예를 들어, 전자 장치(100)는 미리 설정된 개수의 플로우의 우선 순위로 구분할 수 있다. 임시 버퍼(156-1, 156-2, 156-3)에 인큐되는 플로우는 전송한 패킷의 크기를 기준으로 결정될 수 있다. 전자 장치(100)는 플로우의 전송한 패킷의 크기에 따라, 플로우가 인큐되는 임시 버퍼(156-1, 156-2, 156-3)를 결정할 수 있다. 전자 장치(100)는 플로우의 전송한 패킷의 크기가 커짐에 따라, 플로우를 우선 순위가 낮은 임시 버퍼(156-1, 156-2, 156-3)에 인큐시킬 수 있다.
예를 들어, 상기 도 6 내지 도 10과 같이 전자 장치(100)가 미리 설정된 개수의 우선 순위를 설정하고, 플로우에 대하여 전송한 패킷의 크기에 따라 우선 순위를 결정하는 플로우 스케줄링 방법은 quantized least attained service scheduling으로 호칭될 수 있다.
도 11 및 도 12는 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))가 리소스 블록(171, 172)을 할당하는 동작을 나타낸 도면이다.
도 11은 다양한 실시예들에 따른 복수의 단말 각각의 버퍼에 인큐된 플로우를 나타낸 도면이다. 도 11은 단말 1(UE 1)(300-1)의 버퍼(151)에는 플로우 1(161-1, 161-2), 플로우 2(162), 플로우 3(163)이 인큐되어 있고, 단말 2(UE 2)(300-2)의 버퍼(152)에는 플로우 4(164-1, 164-2, 164-3)가 인큐된 상태를 나타낸 도면이다.
도 11 및 도 12에서, 전자 장치(100)는 각 단말(300-1, 300-2)의 우선 순위에 따라 플로우의 패킷을 전송하기 위한 리소스 블록(171, 172)을 할당할 수 있다. 예를 들어, 전자 장치(100)는 각 단말(300-1, 300-2)의 버퍼(151, 152)에 우선 순위가 가장 높은 플로우 1(161-1, 161-2) 및 플로우 4(164-1, 164-2, 164-3)를 각 단말(300-1, 300-2)에 전송하기 위하여, 리소스 블록(171, 172)을 할당할 수 있다.
도 12는 다양한 실시예들에 따른 전자 장치(100)가 리소스 블록(171, 172)을 할당하는 동작을 나타낸 도면이다. 도 12는 리소스 블록(171, 172)을 도 11에 도시된 단말 1(300-1) 및 단말 2(300-2)에 할당하는 동작을 나타낸 도면이다.
도 12를 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 복수의 단말(300-1, 300-2) 각각에 대한 예상 전송률 및 플로우에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록(171, 172)을 할당할 수 있다.
예를 들어, 전자 장치(100)는 아래 수학식 1에 따라, 리소스 블록(171, 172)을 할당할 수 있다.
[수학식 1]
상기 수학식 1에서 는 플로우의 남은 사이즈의 크기, 는 단말 i의 예상 전송률(achievable rate)를 의미할 수 있다. 상기 수학식 1에서, 플로우의 남은 사이즈의 크기는 플로우의 전송한 패킷의 크기로 근사하여 계산될 수 있다.
예를 들어, 도 12의 (a)와 같이, 단말 1(300-1)과 단말 2(300-2)의 리소스 블록에 대한 예상 전송률이 동일()한 경우, 상기 수학식 1에 따르면, 전자 장치(100)는 단말 1에 대한 (플로우 1(161-1, 161-2)의 사이즈) / 의 값은 2 / , 단말 2에 대한 (플로우 4(164-1, 164-2, 164-3)의 사이즈) / = 3 / 가 될 수 있다. 단말 1에 대한 수학식 1의 값이 더 작기 때문에, 전자 장치(100)는 리소스 블록(171)을 단말 1(300-1)에 할당할 수 있다. 단말 1(300-1)에 대하여 플로우 1(161-1, 161-2)의 패킷 전송이 완료되면, 전자 장치(100)는 리소스 블록(172)을 단말 2(300-2)에 할당할 수 있다.
예를 들어, 도 12의 (a)에서 플로우 1(161-1, 161-2)의 FCT는 리소스 블록(171)이 할당되는 시간, 플로우 4(164-1, 164-2, 164-3)의 FCT는 리소스 블록(171, 172)이 할당되는 시간을 의미할 수 있다.
도 12의 (b) 및 (c)는 인 경우, 리소스 블록(171, 172)을 할당하는 동작을 나타낸 도면이다. 인 경우, 상기 수학식 1에 따른 값은 단말 2(300-2)에 대한 값이 단말 1(300-1)에 대한 값보다 더 작을 수 있다. 도 12의 (b) 및 (c)는 단말 2(300-2)의 channel quality가 단말 1(300-1)의 channel quality보다 좋은 상태를 나타낼 수 있다.
인 경우 도 12의 (b)와 같이 리소스 블록(171)을 단말 1(300-1)에 할당하고, 리소스 블록(172)을 단말 2(300-2)에 할당하는 경우, 리소스 블록(171)이 할당되는 시간동안 플로우 4(164-1, 164-2, 164-3)의 FCT가 증가하게 된다.
예를 들어, 전자 장치(100)는 도 12의 (c)와 같이 수학식 1에 따라 단말 2(300-2)에 리소스 블록(172)를 먼저 할당하고, 단말 1(300-1)에 리소스 블록(171)을 할당할 수 있다.
예를 들어, 전자 장치(100)는 복수의 단말(300-1, 300-2) 중에서 플로우에 대하여 전송한 패킷의 크기에 대한 예상 전송률의 비가 가장 큰 단말에 대하여 리소스 블록을 할당할 수 있다. 예를 들어, 플로우에 대하여 전송한 패킷의 크기에 대한 예상 전송률의 비는 상기 수학식 1에서 의 역수를 의미할 수 있다. 예를 들어, 플로우에 대하여 전송한 패킷의 크기에 대한 예상 전송률의 비가 가장 큰 단말은 상기 수학식 1에서 의 값이 가장 작은 단말을 의미할 수 있다.
도 12의 (c)와 같이, 전자 장치(100)는 사전 정보 및/또는 룰 셋이 주어지지 않는 경우에도, 플로우의 FCT를 감소시킬 수 있다. 기존의 MAC 레이어(130)의 스케쥴링 방법의 경우, 같은 QoS 레벨을 가지는 플로우를 복수의 단말로 전송하는 경우, 도 12의 (b)와 같이, 플로우 사이즈가 큰 플로우(예: 플로우 1(161-1, 161-2))의 head-of-line blocking에 의해 짧은 플로우(예: 플로우 4(164-1, 164-2, 164-3))의 FCT가 증가하는 것을 방지할 수 없으나, 전자 장치(100)는 도 12의 (c)와 같이, 짧은 플로우의 FCT(예: 플로우 4(164-1, 164-2, 164-3))를 감소시킬 수 있다.
일례로, 전자 장치(100)는 플로우가 단말에 도달하는데 걸리는 시간(air time)을 고려하여, 리소스 블록을 할당할 수 있다. 예를 들어, 전자 장치(100)는 플로우 1(161-1, 161-2) 및 플로우 4(164-1, 164-2, 164-3)가 각각 단말 1(300-1) 및 단말 2(300-2)에 도달하는데 걸리는 시간을 고려하여, 리소스 블록을 할당할 수 있다. 예를 들어, 리소스 블록(171)이 할당되는 시간이 t1, 리소스 블록(171)이 할당되는 시간이 t2인 경우, 도 12의 (b)에서 플로우가 도달하는데 걸리는 총 시간은 2*t1 + t2이 될 수 있다. 도 12의 (c)에서 플로우가 도달하는데 걸리는 총 시간은 2*t2 + t1으로, 도 12의 (b)의 경우보다 각 단말(300-1, 300-2)로 각 플로우가 도달하는데 걸리는 시간이 감소할 수 있다.
일례로, 전자 장치(100)는 도 12의 (c)와 같이, 복수의 단말(300-1, 300-2)에 대하여, 플로우의 FCT를 최소화하도록 리소스 블록을 할당할 수 있다.
예를 들어, 도 11 내지 도 12에서 전자 장치(100)의 MAC 레이어(예: 도 1의 MAC 레이어(130))가 리소스 블록을 할당하는 방법은 channel-aware least attained service scheduling으로 호칭될 수 있다.
도 13은 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))가 플로우 스케줄링 방법을 수행하는 동작을 나타낸 도면이다.
도 13을 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 동작 1310에서 복수의 단말 각각에 관한 버퍼(예: 도 3 및 도 5의 버퍼(150))에 입력된 패킷으로부터 플로우를 식별할 수 있다. 예를 들어, 전자 장치(100)는 패킷 검사를 수행하여, 입력된 패킷의 5-tuple 정보를 추출할 수 있다. 전자 장치(100)는 5-tuple 정보를 이용하여 패킷의 플로우를 특정할 수 있다.
일례로, 전자 장치(100)는 동작 1320에서 미리 설정된 주기마다 플로우에 따라 전송한 패킷의 크기를 식별할 수 있다. 예를 들어, 전자 장치(100)는 버퍼 상태, 플로우 사이즈 정보, 플로우 별 상태 중 적어도 하나를 식별할 수 있다. 예를 들어, 미리 설정된 주기는 스케줄링 TTI를 의미할 수 있다.
일례로, 전자 장치(100)는 동작 1330에서 전송한 패킷의 크기에 기초하여, 버퍼(150) 내의 플로우의 우선 순위를 결정할 수 있다. 예를 들어, 전자 장치(100)는 플로우에 대하여 전송한 패킷의 크기가 클수록, 플로우의 우선 순위를 낮게 결정할 수 있다. 예를 들어, 전자 장치(100)는 플로우에 대하여 전송한 패킷의 크기가 작을수록, 플로우의 우선 순위를 높게 결정할 수 있다. 예를 들어, 전자 장치(100)의 RLC 레이어(예: 도 1의 RLC 레이어(120))는 각 플로우 별로 임시 버퍼(예: 도 4의 임시 버퍼(155-1, 155-2, 155-3))를 설정하고, 플로우에 대하여 전송한 패킷의 크기에 따라 임시 버퍼(155-1, 155-2, 155-3) 및/또는 플로우의 우선 순위를 결정할 수 있다. 전자 장치(100)는 결정된 임시 버퍼(155-1, 155-2, 155-3) 및/또는 플로우의 우선 순위에 기초하여, 버퍼(150) 내의 플로우의 우선 순위를 결정할 수 있다. 예를 들어, 전자 장치(100)가 버퍼(150) 내의 플로우의 우선 순위를 결정하는 것은, 각 플로우에 대하여 전송한 패킷의 크기에 따라 버퍼(150) 내의 플로우의 우선 순위를 재정렬하는 것을 의미할 수 있다.
일례로, 전자 장치(100)는 동작 1340에서 플로우의 우선 순위에 따라, 플로우의 패킷을 복수의 단말(예: 도 1의 사용자 단말(300))로 전송할 수 있다. 예를 들어, 전자 장치(100)는 각 단말에 대응하는 버퍼(150) 내의 우선 순위가 가장 높은 플로우의 패킷이 각 단말로 전송되도록 할 수 있다.
도 13과 같이, 서버(예: 도 1의 서버(200))(예: MEC)로부터 단말로 전송되는 트래픽이 증가하더라도, 전자 장치(100)는 짧은 플로우를 우선하여 처리함으로써, 전자 장치(100)의 RLC 레이어(120)의 버퍼에서 발생하는 queue build-up을 감소시킬 수 있다. queue build-up이 감소하면, buffer-overflow로 인한 패킷 로스를 감소시킬 수 있고, 패킷 재전송을 방지하여, RTT를 감소시킬 수 있다.
전자 장치(100)는 queueing delay를 감소시켜 FCT를 감소시킬 수 있고, 지연에 민감한 어플리케이션의 높은 QoS를 제공할 수 있다. 전자 장치(100)는 짧은 플로우의 tail FCT를 감소시킬 수 있고, latency bound를 지킴으로써 어플리케이션에서 요구하는 최소한의 QoS 또는 SLA(Service-Level Agreement)를 보장할 수 있다.
도 14는 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))가 플로우 스케줄링 방법을 수행하는 동작을 나타낸 도면이다.
도 14를 참조하면, 다양한 실시예들에 따른 전자 장치(100)는 동작 1410에서 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별할 수 있다. 전자 장치(100)는 동작 1420에서 미리 설정된 주기마다 플로우에 따라 전송한 패킷의 크기를 식별할 수 있다. 전자 장치(100)는 동작 1430에서 전송한 패킷의 크기에 기초하여, 버퍼 내의 플로우의 우선 순위를 결정할 수 있다.
상기의 동작 1410, 1420, 1430에 대하여, 도 13에 도시된 동작 1310, 1320, 1330에 관한 설명이 각각 실질적으로 동일하게 적용될 수 있다. 동작 1410, 1420, 1430에 관하여 설명하지 않은 내용이라고 하더라도, 각각 동작 1310, 1320, 1330에 관하여 설명된 내용은 실질적으로 동일하게 적용될 수 있다.
일례로, 전자 장치(100)는 동작 1440에서 예상 전송률 및 플로우에 대하여 전송한 패킷의 크기에 기초하여, 리소스 블록을 할당할 수 있다. 예를 들어, 전자 장치(100)는 리소스 블록에 대한 각 단말의 예상 전송률을 계산할 수 있다. 예를 들어, MAC 스케줄러(예: 도 2의 MAC 스케줄러(131))는 PHY 레이어(예: 도 1 또는 도2 의 PHY 레이어(140))로부터 설정된 주기마다 CQI 지수를 수신하고, CQI 지수 및/또는 MCS에 따라 각 단말의 리소스 블록에 대한 예상 전송률을 계산할 수 있다.
예를 들어, 전자 장치(100)는 상기 수학식 1에 따라, 상기 수학식 1의 값이 최소가 되는 단말에 대하여 리소스 블록을 할당할 수 있다. 상기 수학식 1에서, 플로우의 남은 사이즈는 플로우에 대하여 전송된 패킷의 크기로 근사하여, 수학식 1을 계산할 수 있다.
일례로, 전자 장치(100)는 동작 1450에서 할당된 리소스 블록에 기초하여, 플로우의 패킷을 복수의 단말로 전송할 수 있다. 전자 장치(100)는 동작 1440에서 할당한 리소스 블록에 따라, 복수의 단말에 대한 플로우의 FCT를 최소화할 수 있다.
도 15은 다양한 실시예들에 따른 플로우 스케줄링 방법의 성능을 나타낸 도면이다.
도 15에서, PF는 종래의 proportional fair(PF) 스케줄링 방법에 따라 패킷을 전송하는 경우를 의미하고, PF+D1은 전자 장치(예: 도 1의 전자 장치(100))의 RLC 레이어(예: 도 1의 RLC 레이어(120))에서 전송한 패킷의 크기에 따라 플로우의 우선 순위를 결정하고, 종래의 PF 스케줄링 방법에 따라 리소스 블록을 할당하는 경우를 의미한다. channel-aw LAS는 전자 장치(100)의 RLC 레이어(120)에서 전송한 패킷의 크기에 따라 플로우의 우선 순위를 결정하고, MAC 레이어(예: 도 1의 MAC 레이어(130))에서 플로우의 전송한 패킷의 크기 및 예상 전송률에 기초하여 리소스 블록을 할당한 경우를 의미한다.
도 15와 같이, PD+D1과 channel-aw LAS와 같이, 전자 장치(100)가 RLC 레이어(120) 또는 MAC 레이어(130)에서 플로우 또는 리소스 블록 스케줄링을 수행하는 경우, 짧은 플로우의 평균 FCT(도 12의 avg short(<100KB) FCT)가 감소하고, tail FCT(도 12의 tail FCT of short(<100KB) flows) 또한 감소하는 것을 확인할 수 있다.
도 15와 같이, 전자 장치(100)는 플로우에 대하여 전송한 패킷의 크기, 각 단말에 대한 예상 전송률 중 적어도 하나를 고려하여 단말로 패킷을 전송함으로써, 짧은 플로우의 FCT를 감소시킬 수 있다.
다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))는 프로세서 및 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어가 실행될 때, 복수의 단말(예: 도 1의 사용자 단말(300)) 각각에 관한 버퍼(예: 도 3의 버퍼(150))에 입력된 패킷으로부터 플로우를 식별하고, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고, 상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말(300)로 전송할 수 있다.
상기 프로세서는, 상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고, 상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정할 수 있다.
상기 프로세서는, 전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 플로우의 우선 순위를 구분하고, 상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정할 수 있다.
상기 프로세서는, 상기 복수의 단말 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 복수의 단말로 상기 패킷을 전송하기 위한 리소스 블록을 할당하고, 할당된 상기 리소스 블록 및 상기 플로우의 우선 순위에 기초하여, 상기 플로우의 패킷을 상기 복수의 단말로 전송할 수 있다.
상기 프로세서는, 상기 복수의 단말 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당할 수 있다.
상기 프로세서는, 상기 복수의 단말 각각에 대하여, 상기 플로우의 FCT(flow completion time)를 최소화하도록, 상기 리소스 블록을 할당할 수 있다.
다양한 실시예들에 따른 전자 장치(100)는 프로세서 및 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어가 실행될 때, 복수의 단말(300) 각각에 관한 버퍼(예: 도 3의 버퍼(150))에 입력된 패킷으로부터 플로우를 식별하고, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고, 상기 복수의 단말(300) 각각에 대하여, 상기 우선 순위에 따른 상기 플로우의 FCT(flow completion time)를 최소화하도록 상기 복수의 단말(300)로 상기 패킷을 전송하기 위한 리소스 블록을 할당하고, 할당된 상기 리소스 블록에 기초하여, 상기 우선 순위에 따라 상기 플로우의 패킷을 상기 복수의 단말(300)로 전송할 수 있다.
상기 프로세서는, 상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고, 상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정할 수 있다.
상기 프로세서는, 전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 우선 순위를 구분하고, 상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정할 수 있다.
상기 프로세서는, 상기 복수의 단말(300) 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 리소스 블록을 할당할 수 있다.
상기 프로세서는, 상기 복수의 단말(300) 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당할 수 있다.
다양한 실시예들에 따른 플로우 스케줄링 방법은 복수의 단말(300) 각각에 관한 버퍼(150)에 입력된 패킷으로부터 플로우를 식별하는 동작, 미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하는 동작, 상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하는 동작 및 상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말(300)로 전송하는 동작을 포함할 수 있다.
상기 플로우의 우선 순위를 결정하는 동작은, 상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고, 상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정할 수 있다.
상기 플로우의 우선 순위를 결정하는 동작은, 전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 플로우의 우선 순위를 구분하고, 상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정할 수 있다.
상기 플로우 스케줄링 방법은, 상기 복수의 단말(300) 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 복수의 단말(300)로 상기 패킷을 전송하기 위한 리소스 블록을 할당하는 동작을 더 포함하고, 상기 플로우의 패킷을 상기 복수의 단말(300)로 전송하는 동작은, 할당된 상기 리소스 블록 및 상기 플로우의 우선 순위에 기초하여, 상기 플로우의 패킷을 상기 복수의 단말(300)로 전송할 수 있다.
상기 리소스 블록을 할당하는 동작은, 상기 복수의 단말(300) 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당할 수 있다.
상기 리소스 블록을 할당하는 동작은, 상기 복수의 단말(300) 각각에 대하여, 상기 플로우의 FCT(flow completion time)를 최소화하도록, 상기 리소스 블록을 할당할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치(100)는 다양한 형태의 장치가 될 수 있다. 전자 장치(100)는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치(100)는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(100)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리 또는 외장 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램)로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(100))의 프로세서(예: 프로세서))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (17)

  1. 전자 장치에 있어서,
    프로세서; 및
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리
    를 포함하고,
    상기 프로세서는,
    상기 명령어가 실행될 때, 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하고;
    미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고;
    상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고;
    상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말로 전송하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고,
    상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 플로우의 우선 순위를 구분하고;
    상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정하는, 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 단말 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 복수의 단말로 상기 패킷을 전송하기 위한 리소스 블록을 할당하고;
    할당된 상기 리소스 블록 및 상기 플로우의 우선 순위에 기초하여, 상기 플로우의 패킷을 상기 복수의 단말로 전송하는, 전자 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 복수의 단말 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당하는, 전자 장치.
  6. 제4항에 있어서,
    상기 프로세서는,
    상기 복수의 단말 각각에 대하여, 상기 플로우의 FCT(flow completion time)를 최소화하도록, 상기 리소스 블록을 할당하는, 전자 장치.
  7. 전자 장치에 있어서,
    프로세서; 및
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에 의해 실행되는 명령어를 저장하는 메모리
    를 포함하고,
    상기 프로세서는,
    상기 명령어가 실행될 때, 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하고;
    미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하고;
    상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하고;
    상기 복수의 단말 각각에 대하여, 상기 우선 순위에 따른 상기 플로우의 FCT(flow completion time)를 최소화하도록 상기 복수의 단말로 상기 패킷을 전송하기 위한 리소스 블록을 할당하고;
    할당된 상기 리소스 블록에 기초하여, 상기 우선 순위에 따라 상기 플로우의 패킷을 상기 복수의 단말로 전송하는, 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고,
    상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정하는, 전자 장치.
  9. 제7항에 있어서,
    상기 프로세서는,
    전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 우선 순위를 구분하고;
    상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정하는, 전자 장치.
  10. 제7항에 있어서,
    상기 프로세서는,
    상기 복수의 단말 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 리소스 블록을 할당하는, 전자 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 복수의 단말 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당하는, 전자 장치.
  12. 복수의 단말 각각에 관한 버퍼에 입력된 패킷으로부터 플로우를 식별하는 동작;
    미리 설정된 주기마다, 상기 플로우에 따라 전송한 패킷의 크기를 식별하는 동작;
    상기 전송한 패킷의 크기에 기초하여, 상기 버퍼 내의 상기 플로우의 우선 순위를 결정하는 동작; 및
    상기 플로우의 우선 순위에 따라, 상기 플로우의 패킷을 상기 복수의 단말로 전송하는 동작
    을 포함하는, 플로우 스케줄링 방법.
  13. 제12항에 있어서,
    상기 플로우의 우선 순위를 결정하는 동작은,
    상기 플로우에 대하여 전송한 패킷의 크기가 클수록 상기 플로우의 우선 순위를 낮게 결정하고,
    상기 플로우에 대하여 전송한 패킷의 크기가 작을수록, 상기 플로우의 우선 순위를 높게 결정하는, 플로우 스케줄링 방법.
  14. 제12항에 있어서,
    상기 플로우의 우선 순위를 결정하는 동작은,
    전송한 패킷의 크기에 기초하여, 미리 설정된 개수의 상기 플로우의 우선 순위를 구분하고;
    상기 플로우에 대하여 전송한 패킷의 크기에 따라, 상기 플로우의 상기 우선 순위를 결정하는, 플로우 스케줄링 방법.
  15. 제12항에 있어서,
    상기 복수의 단말 각각에 대한 예상 전송률(achievable rate) 및 상기 플로우에 대하여 전송한 패킷의 크기에 기초하여, 상기 복수의 단말로 상기 패킷을 전송하기 위한 리소스 블록을 할당하는 동작
    을 더 포함하고,
    상기 플로우의 패킷을 상기 복수의 단말로 전송하는 동작은,
    할당된 상기 리소스 블록 및 상기 플로우의 우선 순위에 기초하여, 상기 플로우의 패킷을 상기 복수의 단말로 전송하는, 플로우 스케줄링 방법.
  16. 제15항에 있어서,
    상기 리소스 블록을 할당하는 동작은,
    상기 복수의 단말 중에서 상기 플로우에 대하여 전송한 패킷의 크기에 대한 상기 예상 전송률의 크기의 비가 가장 큰 단말에 대하여, 상기 리소스 블록을 할당하는, 플로우 스케줄링 방법.
  17. 제15항에 있어서,
    상기 리소스 블록을 할당하는 동작은,
    상기 복수의 단말 각각에 대하여, 상기 플로우의 FCT(flow completion time)를 최소화하도록, 상기 리소스 블록을 할당하는, 플로우 스케줄링 방법.

KR1020220077669A 2022-06-24 2022-06-24 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치 KR20240000896A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220077669A KR20240000896A (ko) 2022-06-24 2022-06-24 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치
PCT/KR2023/005812 WO2023249242A1 (ko) 2022-06-24 2023-04-27 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220077669A KR20240000896A (ko) 2022-06-24 2022-06-24 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20240000896A true KR20240000896A (ko) 2024-01-03

Family

ID=89380115

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220077669A KR20240000896A (ko) 2022-06-24 2022-06-24 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치

Country Status (2)

Country Link
KR (1) KR20240000896A (ko)
WO (1) WO2023249242A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101275751B1 (ko) * 2007-07-30 2013-06-14 영남대학교 산학협력단 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어 장치
US10917349B2 (en) * 2017-08-11 2021-02-09 Marvell Israel (M.I.S.L) Ltd. Congestion avoidance in a network switch device
TWI654857B (zh) * 2017-12-25 2019-03-21 中華電信股份有限公司 用於流量交換之緩衝排程方法
EP4238349A1 (en) * 2020-10-30 2023-09-06 Telefonaktiebolaget LM Ericsson (publ) Congestion control based inter-gnb carrier aggregation

Also Published As

Publication number Publication date
WO2023249242A1 (ko) 2023-12-28

Similar Documents

Publication Publication Date Title
US9867167B2 (en) Airtime-based packet scheduling for wireless networks
US8897137B2 (en) Dynamic setting of optimal buffer sizes in IP networks
US6850540B1 (en) Packet scheduling in a communications system
KR101118339B1 (ko) 무선 베어러에 서비스를 매핑하여 가중치에 따라 무선 베어러에 대역폭을 할당하는 장치 및 방법
US9642156B2 (en) Transmitting radio node and method therein for scheduling service data flows
EP1264445A1 (en) Packet scheduling in umts using several calculated transfer rates
US20070248101A1 (en) Efficient policer based weighted fair bandwidth method and system
Irazabal et al. Preventing RLC buffer sojourn delays in 5G
US7769038B2 (en) Wireless network scheduling methods and apparatus based on both waiting time and occupancy
EP3682665B1 (en) Packet latency reduction in mobile radio access networks
EP3055958B1 (en) Downlink flow management
CN115622952A (zh) 资源调度方法、装置、设备及计算机可读存储介质
EP2556714B1 (en) Method and node for handling queues in communication networks, and corresponding computer program product
US20040064582A1 (en) Apparatus and method for enabling intserv quality of service using diffserv building blocks
CN112005528B (zh) 一种数据交换方法、数据交换节点及数据中心网络
US20110047271A1 (en) Method and system for allocating resources
JP2001197110A (ja) トラヒック制御方法
US9179366B2 (en) Scheduling methods and apparatus based on adjusted channel capacity
KR20240000896A (ko) 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치
US20180191628A1 (en) Scheduling granularity based on application type
US7724723B2 (en) High-throughput scheduler with integer-based eligible number initialization
US7830857B2 (en) Credit-based wireless network scheduling
KR100959397B1 (ko) 패킷 스케줄링 장치
US20240049043A1 (en) Prioritizing data packets in wireless communication network
Hanini et al. Multicriteria queuing model to improve intra-user multi-flow QoS in wireless cellular networks