78
IN DEGREE PROJECT INFORMATION AND COMMUNICATION TECHNOLOGY, SECOND CYCLE, 30 CREDITS , STOCKHOLM SWEDEN 2019 Cross-Layer Congestion Control with Deep Neural Network in Cellular Network SHIMIN HUANG KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

IN DEGREE PROJECT INFORMATION AND COMMUNICATION TECHNOLOGY,SECOND CYCLE, 30 CREDITS

, STOCKHOLM SWEDEN 2019

Cross-Layer Congestion Control with Deep Neural Network in Cellular Network

SHIMIN HUANG

KTH ROYAL INSTITUTE OF TECHNOLOGYSCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Page 2: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data
Page 3: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Cross-Layer Congestion

Control with Deep Neural

Network in Cellular Network

SHIMIN HUANG

Master Program in Communication Systems (120 Credits)Date: September 3, 2019Supervisor: Caner Kilinc, Ingemar Johansson, Meysam MasoudiExaminer: Slimane Ben SlimaneSchool of Electrical Engineering and Computer ScienceHost company: Ericsson AB

Page 4: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data
Page 5: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

iii

Abstract

A significant fraction of data tra�c is transmitted via cellular networks. Whenintroducing fifth-generation (5G) radio access technology, the maximum bi-trate of the radio link increases significantly, and the delay is lowered. Networkcongestion occurs when the sender attempts to send data at a higher rate thanthe network link or nodes can handle. In order to improve the performanceof the mobile networks, many congestion control techniques and approacheshave been developed over the years. Varying radio conditions in mobile net-works make it challenging to indicate the occurrence of the congestion usingpacket loss as congestion indicator. This master thesis develops a congestioncontrol algorithm based on Artificial Intelligence (AI) technologies, evaluatesand compares it with existing state-of-the-art congestion control algorithmsthat are used with TCP today.

In this study, we use the abundant readable physical layer information ex-changed between the base stations and the user equipment to predict the avail-able bandwidth. Two neural network models, Multi-Layer Perceptron (MLP)and Long Short-Term Memory (LSTM), are introduced as congestion controlalgorithms based on cross-layer information in order to improve user through-put and utilize the available capacity as much as possible.

Evaluation in a Long-Term Evolution (LTE) network system simulator con-firms that the estimation of LSTM model is able to track the varying link ca-pacity, while MLP is less accurate and induces higher delay. The sender usesthe estimated link capacity to adjust its packet sending behavior. Our evalua-tion reveals that for large flows, the LSTM model can attain higher throughputthan state-of-the-art congestion control algorithms, which are the Google Bot-tleneck Bandwidth and Round-trip propagation time (BBR) algorithm and theData Center TCP (DCTCP) algorithm. However, it has higher latency thanthat of these two algorithms. The MLP based model provides unstable perfor-mance compared to LSTM; its prediction is not accurate enough and has thehighest latency among the algorithms.

In conclusion, the LSTM does not underperform the state-of-the-art con-gestion control algorithms. However, it does not provide additional perfor-mance gains in current settings. The MLP model underperforms BBR andDCTCP with L4S and it is not stable enough to be used as a congestion con-trol algorithms.Keywords: Congestion Control, Cellular Networks, Cross-Layer, Neural Net-works

Page 6: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

iv

Sammanfattning

En betydande del av datatrafiken överförs via mobilnät. Vid introduktion avfemte generationens (5G) radioåtkomstteknik ökar den maximala bithastig-heten för radiolänken betydligt och förseningen sänks. Nätstockning uppstårnär avsändaren försöker skicka data med högre hastighet än nätverkslänkeneller noderna kan hantera. För att förbättra prestandan i mobilnät har mångatekniker för trängselkontroll utvecklats under åren. Varierande radioförhållan-den i mobilnätet gör det utmanande att indikera förekomsten av trängseln medhjälp av paketförlust som trängselindikator. Detta examensarbete utvecklar enträngselkontrollalgoritm baserad på AI-teknik (Artificial Intelligence), utvär-derar och jämför den med befintliga toppmoderna trängselkontrollalgoritmersom används med TCP idag.

I denna studie använder vi den rikliga läsbara informationen om fysiskt la-ger som utbyts mellan basstationerna och användarutrustningen för att förut-säga den tillgängliga bandbredden. Två neurala nätverksmodeller, Multi-LayerPerceptron (MLP) och Long Short-Term Memory (LSTM), introduceras somträngselkontrollalgoritmer baserade på tvärskiktsinformation för att förbätt-ra användarens genomströmning och utnyttja den tillgängliga kapaciteten såmycket som möjligt.

Utvärdering i en LTE-nätverkssystemsimulator (Long Term Evolution) be-kräftar att uppskattningen av LSTM-modellen kan spåra den varierande länk-kapaciteten, medan MLP är mindre exakt och inducerar högre fördröjning.Avsändaren använder den uppskattade länkkapaciteten för att justera sitt pa-ketets sändningsbeteende. Vår utvärdering avslöjar att för stora flöden kanLSTM-modellen uppnå högre genomströmning än modernaste trängselkon-trollalgoritmer, som är Google Bottleneck Bandbredd och BBR-algoritm ochData Center TCP (DCTCP) ) algoritm. Men det har högre latens än för des-sa två algoritmer. Den MLP-baserade modellen ger instabil prestanda jämförtmed LSTM; dess förutsägelse är inte nog noggrann och har den högsta laten-sen bland algoritmerna.

Sammanfattningsvis underpresterar LSTM inte de senaste toppkontrollal-goritmerna. Det ger emellertid inte ytterligare prestationsvinster i de aktuel-la inställningarna. MLP-modellen underpresterar BBR och DCTCP med L4Soch den är inte tillräckligt stabil för att användas som en överbelastningskon-trollalgoritm.Nyckelord: Trängselkontroll, Mobilnät, Tvärgående Lager, Neuronnät

Page 7: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Acknowledgements v

Acknowledgements

The degree project was performed at Ericsson in Luleå, Sweden.I would like to express my deepest gratitude to my supervisors, Caner Kil-

inc, Ingemar Johansson, and Meysam Masoudi, for introducing me how tostart the degree project and provide support to me continually. I really appre-ciate your guidance, time, and patience. I learned a lot during the process.Also, I am grateful to my manager, Mats Nordberg. Thank you for giving mesuch an interesting degree project, o�ering me an opportunity to work in aSwedish company, and for giving me follow-on support and advice. More-over, I would like to give a thank to my examiner, Slimane Ben Slimane, whogives me suggestions and feedbacks for this degree project.

I am thankful to other master thesis students in Ericsson, Jonathan Palmand José Perdomo Zelaya. I am happy to make friends with you and have a lotof fruitful and interesting discussions during lunch time. Also, I want to thankStefan Wänstedt, Anders Lanström, Min Wang, Bin Sun, Jonas Pettersson,Kristofer Sandlund, Mårten Ericson, and Marika Stålnacke for providing methe friendly working environment.

I want to dedicate this work to my parents. You are my first teacher in theworld, and my childhood was happy and colorful because of you. Thank youfor always encouraging me when I was upset. Your love and accompany is thebest support in my life.

During my master study at KTH Royal Institute of Technology, I learned alot. I would like to thank every professor and teaching assistant in my masterstudy. Also, I would like to thank my friends in Sweden and in China. Youmake my life happy and interesting. Especially, I want to express my gratitudeto Lida Liu, Jiani Jiang, Yini Gao and Yue Fang. I am happy to discuss mylife, dream, study and future plans with you. Thank you for encouraging meand giving me suggestions.

Last but not least, I would like to thank my boyfriend, Yijie Duan. Al-though we are not in the same country in the second year of my master study,you still give a lot of help and support. Thank you for your understanding andaccompany.

Shimin Huang

Page 8: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data
Page 9: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Contents

1 Introduction 11.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Research Methodology . . . . . . . . . . . . . . . . . . . . . 51.6 Delimitations . . . . . . . . . . . . . . . . . . . . . . . . . . 61.7 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Background 72.1 TCP Congestion Control . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Basic TCP Congestion Control . . . . . . . . . . . . . 82.1.2 Related Works . . . . . . . . . . . . . . . . . . . . . 13

2.2 LTE Network Architecture . . . . . . . . . . . . . . . . . . . 142.2.1 Network Elements . . . . . . . . . . . . . . . . . . . 142.2.2 User Plane Stack . . . . . . . . . . . . . . . . . . . . 152.2.3 Related Works . . . . . . . . . . . . . . . . . . . . . 17

2.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Implementation and Development 193.1 Data Processing . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.1 Data Collection . . . . . . . . . . . . . . . . . . . . . 193.1.2 Data Exploration . . . . . . . . . . . . . . . . . . . . 203.1.3 Data Preparation . . . . . . . . . . . . . . . . . . . . 23

3.2 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2.1 Multi-Layer Perceptron (MLP) . . . . . . . . . . . . . 253.2.2 Long Short-Term Memory (LSTM) . . . . . . . . . . 283.2.3 Evaluation of Model . . . . . . . . . . . . . . . . . . 31

3.3 Implementation in the System Simulator . . . . . . . . . . . . 33

vii

Page 10: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

viii CONTENTS

3.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4 Experiments and Results 364.1 Experiment Environment . . . . . . . . . . . . . . . . . . . . 364.2 The First Scenario . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2.1 Pre-Train and Test . . . . . . . . . . . . . . . . . . . 384.2.2 Experiment in System Simulator . . . . . . . . . . . . 40

4.3 The Second Scenario . . . . . . . . . . . . . . . . . . . . . . 444.3.1 Pre-Train and Test . . . . . . . . . . . . . . . . . . . 454.3.2 Experiment in System Simulator . . . . . . . . . . . . 45

4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5 Conclusions 535.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Bibliography 55

Page 11: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

List of Figures

2.1 Architecture of LTE network . . . . . . . . . . . . . . . . . . 152.2 LTE user plane stack . . . . . . . . . . . . . . . . . . . . . . 16

3.1 The distribution of single collected parameter and the relation-ship between two parameters . . . . . . . . . . . . . . . . . . 22

3.2 Heat map of the Pearson correlation matrix for the radio pa-rameters and the user throughput . . . . . . . . . . . . . . . . 23

3.3 Structure of the MLP model . . . . . . . . . . . . . . . . . . 263.4 Schematic of the standard RNN model . . . . . . . . . . . . . 283.5 Basic structure of LSTM model . . . . . . . . . . . . . . . . 293.6 Schematic of the LSTM cell . . . . . . . . . . . . . . . . . . 303.7 Cross-layer design in the system simulator . . . . . . . . . . . 34

4.1 Sample of user throughput compared with BBR and DCTCPwith L4S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2 Sample of IP packet delay compared with BBR and DCTCPwith L4S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 Average TCP throughput for di�erent user load . . . . . . . . 424.4 Cumulative distributive function of IP packet delay . . . . . . 434.5 Average cell throughput for di�erent user load . . . . . . . . . 444.6 Downlink subbands utilization . . . . . . . . . . . . . . . . . 454.7 Sample of user TCP throughput compared with BBR and DCTCP

with L4S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.8 Sample of IP packet delay compared with BBR and DCTCP

with L4S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.9 Sample of cell throughput compared with BBR and DCTCP

with L4S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.10 Average TCP throughput for di�erent user load . . . . . . . . 504.11 Cumulative distributive function of IP packet delay . . . . . . 504.12 Average cell throughput for di�erent user load . . . . . . . . . 51

ix

Page 12: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

x LIST OF FIGURES

4.13 Downlink subbands utilization . . . . . . . . . . . . . . . . . 52

Page 13: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

List of Tables

3.1 Description of collected parameters . . . . . . . . . . . . . . 213.2 Description of hyperparameters of neural networks . . . . . . 323.3 Configuration choice for MLP . . . . . . . . . . . . . . . . . 323.4 Configuration choice for LSTM . . . . . . . . . . . . . . . . . 33

4.1 Simulation configuration for data collection . . . . . . . . . . 384.2 Fine-tuned configuration for MLP . . . . . . . . . . . . . . . 394.3 Fine-tuned configuration for LSTM . . . . . . . . . . . . . . . 394.4 root mean squared error comparison . . . . . . . . . . . . . . 394.5 Fine-tuned configuration for MLP . . . . . . . . . . . . . . . 464.6 Fine-tuned configuration for LSTM . . . . . . . . . . . . . . . 464.7 Root mean squared error comparison . . . . . . . . . . . . . . 46

xi

Page 14: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

List of Acronyms and Abbrevia-

tions

This document requires readers to be familiar with terms and concepts of mo-bile network as well as Transmission Control Protocol (TCP) congestion con-trol. For clarity, we summarize some of these terms and give a short descrip-tion of them before presenting them in next sections.

TCP Transmission Control Protocol

5G fifth-generation (IMT-2020)

NR New Radio

eMBB enhanced Mobile BroadBand

mMTC massive Machine-Type Communication

URLLC Ultra-Reliable and Low-Latency Communication

AR Augmented Reality

VR Virtual Reality

IoT Internet of Things

QoS Quality of Service

ACK ACKnowledgement

RTT Round-Trip Time

BBR Bottleneck Bandwidth and Round-trip propagationtime

DCTCP Data Center TCP

xii

Page 15: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

List of Acronyms and Abbreviations xiii

ECN Explicit Congestion Notification

L4S Low Latency Low Loss Scalable throughput

AI Artificial Intelligence

4G forth-generation (IMT-2010)

LTE Long-Term Evolution

FTP File Transfer Protocol

UDP User Datagram Protocol

LSTM Long Short-Term Memory

MLP Multi-Layer Perceptron

KPI Key Performance Index

UE User Equipment

CCA Congestion Control Algorithm

RTO Retrasmission TimeOut

cwnd congestion window

ssthresh slow-start threshold

AIMD Additive Increase / Multiplicative Decrease

SACK Selective Acknowledgement

eNB E-UTRAN Node B

EPS Evolved Packet System

EPC Evolved Packet Core

SGW Serving Gateway

PGW Packet Data Network Gateway

PHY PHYsical layer

PDCP Packet Data Converge Protocol

Page 16: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

xiv List of Acronyms and Abbreviations

RLC Radio Link Control

MAC Medium Access Control

HARQ Hybrid Automatic Repeat Request

CQI Channel Quality Index

DTX Discontinuous Transmission Ratio

HSPA+ Evolved High Speed Packet Access

RAT Radio Access Technology

RSRP Referenced Signal Received Power

RSRQ Referenced Signal Received Quality

ANN Artificial Neural Network

MSE Mean Squared Error

ReLu Rectified Linear Unit

ELU Exponential Linear Unit

SELU Scaled Exponential Linear Unit

RNN Recurrent Neural Network

RMSE Root Mean Squared Error

DL4J DeepLearning4j

GSM Global System for Mobile Communications

WCDMA Wideband Code Division Multiple Access

Page 17: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Chapter 1

Introduction

This chapter gives a general introduction to the Transmission Control Protocol(TCP) congestion control in radio access networks. To be specific, this chapterdescribes specific problems that this thesis addresses, the context of problems,the goals of the degree project, the delimitations of the work, and outlines thestructures of the thesis report.

1.1 Background

Radio access networks have been developing rapidly over the past two decades.Nowadays, they have become a dominant mode of Internet access. With attrac-tive price models for mobile data, huge demand for mobile services, as well asthe popularity of smartphones and other kinds of hand-held wireless devices,the number of global mobile subscriptions reached 7.9 billion in the first quar-ter of 2019. Moreover, the global penetration rate is 104%. The mobile datatra�c grew by 82% between the first quarter of 2018 and the first quarter of2019. It is expected that mobile tra�c grows 34% year-on-year between 2018and 2024, and most of the data tra�c is expected to be video tra�c [1].

The growth in the number of users and data rate demands are importantdrivers for the development of the fifth-generation (5G) of mobile communi-cation. 5G networks, known as New Radio (NR), are expected to improvethe system capacity significantly [2]. In the context of 5G, the use casesand services are classified into three categories: enhanced Mobile Broad-Band (eMBB), massive Machine-Type Communication (mMTC), and Ultra-Reliable and Low-Latency Communication (URLLC) [3]. eMBB aims to ad-dress the demand of high bitrate applications, such as live video streamingand Augmented Reality (AR)/Virtual Reality (VR). mMTC enables massive

1

Page 18: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

2 CHAPTER 1. INTRODUCTION

deployments of Internet of Things (IoT) and supports remote sensing, moni-toring, and actuation. URLLC is a service class that enables latency-sensitiveand high-reliability services, such as automation control, and the tactile Inter-net. In order to create and promote new services with the deployment of the5G radio networks, the Quality of Service (QoS) requires to be guaranteed.

Congestion in the network happens when a network node upstream is trans-mitting more data than said node can handle and forward the packets to thedownstream. It induces higher latency, packet loss as well as blocking of thenew connection in the network [4]. As a result, congestion leads to data lossand unreliable connection. Therefore, congestion control techniques are intro-duced in the transport layer to avoid congestion and optimize the performancein the networks.

Congestion control attempts to match senders sending rate to the availablecapacity in the network, balance network tra�c as well as improve the QoSfor the users. It probes the available capacity in the network and adapts thesending rate to the available capacity. Therefore, it can reduce the delay andmaintain low packet loss rate, which is necessary to meet the requirements forthe real-time mobile application.

Transport layer supports end-to-end communication services for applica-tions, such as reliability, flow control, and multiplexing [4]. TransmissionControl Protocol (TCP) is one of the main protocols in the transport layer.It provides connection-oriented transmissions, in-ordered delivery, and errorcheck. Based on its function, it is desirable and appropriate to implement con-gestion control in TCP. Most of the data tra�c in mobile networks run overTCP [5]. Therefore, it is beneficial to optimize the performance of congestioncontrol mechanism for both users and mobile network operators. More specif-ically, the increase of throughput can result in higher download speed for theuser and spectrum e�ciency for the mobile network operators, so that theycan utilize the precious spectrum resources of 5G mobile networks as muchas possible [6].

The optimization of congestion control mechanisms has been active re-search for all kinds of networks for more than three decades. Previous ap-proaches utilize packet-signaling as congestion indicators, such as acknowl-edgments (ACKs) and round-trip time (RTT). Researchers implemented vari-ous models to probe the available capacity based on the congestion indicators.For the loss-based congestion control algorithms, such as TCP Reno [7], Cu-bic [8], they treat three duplicate ACKs or retransmission timeout as the packetloss events and take measures to lower than sending rate to match the avail-able capacity. However, these algorithms are originally designed for fixed net-

Page 19: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 1. INTRODUCTION 3

works. They do not take the uniqueness of mobile networks into accounts, suchas frequently varying radio condition, burst scheduling, and unpredictabilitydue to user mobility [9]. It is necessary to understand the structure of themobile networks and identify the issue that might degrade the performance.

A state-of-the-art congestion control such as Google BBR (Bottleneck Band-width and Round-trip propagation time) algorithm [10] can track the varyingradio conditions by probing the maximum capacity and minimum RTT pe-riodically. However, it reacts aggressively to reduce the sending rate whenprobing the minimum RTT as well as draining the bu�er, which is possi-ble to lead to lower throughput in the cellular networks. Also, Data CenterTCP (DCTCP) [11] leverages Explicit Congestion Notification (ECN) [12]and Low Latency, Low Loss, Scalable throughput (L4S) [13] marking to ad-just the sending rate based on the congestion condition in the network canalso achieve high link utilization and maintain very low latency in the radionetwork [14].

Inspired by the Turing machine theory in the 1930s and revived again by thesuccess of deep neural networks, Artificial Intelligence (AI) have been widelyused in many research fields, such as natural language processing, computervision, sign recognition, etc [15].

The breakthroughs in computing capacity and AI encouraged researchersto leverage AI in mobile networks, especially in the 5G context. This motivatesto give a thought for predicting the available capacity in advance as part of TCPcongestion control to improve the throughput in the network and leverage moreradio resources. Also, taking advantage of the AI forecasting ahead of time inorder to optimize some network condition, for instance, higher link utilization,and shorter queuing delay. Referring to some similar works or attempts beforecan help proceed in a defined and right track.

In this degree project, data-driven approaches using deep learning meth-ods are investigated as the TCP congestion control algorithm in the 5G NRnetwork. For practical reasons, the approaches are evaluated in the forth-generation (4G) Long-Term Evolution (LTE) network system simulator, since5G NR does not make significant modification in the upper layer. The ap-proaches are chosen based on previous research and related characteristics ofthe mobile network.

1.2 Problem

Existing congestion control algorithms unnecessarily utilize packet loss as acongestion indicator in the cellular network, because handover, bit error, and

Page 20: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

4 CHAPTER 1. INTRODUCTION

interference also cause packet loss [9]. Moreover, there is a lot of useful andreadily available information in the physical layer and link layer employed bythe mobile networks. Data analysis can be applied to extract patterns betweenthe available information and the users available capacity. It is promising toopen up the physical layer and utilize the physical layer information to predictthe available capacity by the AI models.

This degree project seeks the solve the following questions. Which physi-cal layer information can be used to predict the available capacity for the users?Which AI model is suitable for congestion control? How much time in advancecan we predict? What performance gains can AI forecasting bring?

1.3 Purpose

The degree project aims to build up an AI-based congestion control algorithmbased on the underlying network information in 5G radio network as an ex-periments to compare its performance with that of the state-of-the-art TCPcongestion control algorithm, which are DCTCP with L4S marking mecha-nism and Google BBR. Initially, some vanilla neural network approaches andalgorithms are used as a congestion control mechanism to predict the availablecapacity per user in a cell. Then, the trained neural network models are em-ployed as a part of network system simulator. Its performance is investigatedand evaluated with the comparison of DCTCP with L4S and BBR.

1.4 Objectives

The objectives of this degree project have been divided into the following foursub-goals:

• Understand the state-of-the-art congestion control algorithm and inves-tigate some potential AI algorithms to be replaced and used as a con-gestion control algorithm.

• Understand what parameters are important for the prediction of availablecapacity in the cellular network in an end-to-end scenario. The lower-layer parameters are apparently essential to gather at this phase, and howthey relate with the available capacity in the cellular network.

• Develop an AI model as congestion control algorithm, and integrate thealgorithm with the system simulator

• Compare the model with existing DCTCP and Google BBR implemen-tation, finally analyze the results of the test and evaluate the performance

Page 21: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 1. INTRODUCTION 5

of the AI model.

1.5 Research Methodology

It is challenging to conduct the implementation using physical equipment. Set-ting up the entire 5G NR network in a laboratory is expensive and hard toaccess to the data in real products. Currently, there is a few 5G commercialnetworks in the world, which is also another limitation to use real products inthe exploration. Compared with commercial LTE network, 5G NR has highermaximum bitrate as well as lower latency. Its network architecture and higherlayer design is similar with the LTE network.

Consequently, using a commercial LTE network and terminals is a cheaperalternative. However, considering that there are active users in the network,it is di�cult to know precisely the network status at the moment of the ex-periment. Therefore, simulation in LTE networks appears as a feasible ap-proach. It is a�ordable and allows the complete control of the network con-dition. Moreover, the simulation is repeatable and stable compared with realcontext.

Data collection and analysis are critical research methodologies in the earlystages of this project. The data will be collected from the Java-based sys-tem simulator, which is a powerful simulation platform for various mobileservices over several radio access technologies. The network information isavailable in all layers in the radio network. Matlab [16] is used for postpro-cessing the logged data from the system simulator. For data visualization,main scientific toolkits of Python, in particular, Pandas [17], Numpy [18], andMatplotlib [19], are the primary tools. Scikit-learn [20] and Keras [21] are thetools used for feature engineering and model training.

The experimental part of the degree project consists of model developmentand integration as a part of the system simulator. In order to get the maximumavailable capacity of each user, the original dataset is generated running FileTransfer Protocol (FTP) over User Datagram Protocol (UDP), so that the TCPcongestion control does not restrict the throughput. The deep neural networkmodels, such as Long Short-term Memory (LSTM) model and Multi-LayerPerceptron (MLP) are applied to predict the future throughput of each user.The model is integrated to the system simulator, and it will replace the originalcongestion control algorithm in TCP. The resulted throughput and other keyperformance indexes (KPIs) will be compared with Google BBR. Quantitativeanalytical methods are used to evaluate the statistical results of the simulation.

Page 22: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

6 CHAPTER 1. INTRODUCTION

1.6 Delimitations

An important aspect is that we are not able to control the entire end-to-endnetwork. Although we utilize the available information on the existing physicallayer, all the actions taken in the degree project are done from an “over-the-top” perspective, meaning that the application does not have control of theunderlying network.

This thesis work mainly focuses on downlink data transmission. From aUser Equipment (UE) perspective, download is the focus. Since there is muchinformation that is available to understand complex behaviors, for this reason,we will limit ourselves to straightforward scenarios that will allow us to buildup such knowledge.

Lastly, we do not have access to the hardware that would be required toperform measurement on a real LTE network. Thus, we are not able to assessthe di�erence of the result in the simulation environment against real measure-ments.

1.7 Outline

The outline of the rest of the report is as follows. Chapter 2 presents the nec-essary background regarding the existing TCP congestion control algorithmsand the fundamental of LTE networks. Chapter 3 describes the implementa-tion and development in this degree project, giving an introduction about theengineering-related methods, such as data processing, modeling, and integra-tion of the related model with the simulator. In Chapter 4, the experimentalevaluation was carried out, and the results are visualized and analyzed. Chap-ter 5 states the conclusion of the entire degree project based on the outcomesand illustrates the limitations, future works, and reflections.

Page 23: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Chapter 2

Background

This chapter provides basic background information about current TCP con-gestion control mechanisms and the LTE network architecture. To be specific,this chapter describes the fundamentals of TCP congestion control in detail,including the idea of congestion control, the implementation of congestioncontrol algorithms (CCAs), identified problems in the early version of CCAs,and review of existing state-of-the-art CCAs. Especially, BBR and DCTCPwith L4S, which are used as the comparison with our algorithms, are intro-duced in the review. As we evaluated our work in LTE network environment,it is su�cient to understand the general structure of the LTE network, togetherwith the network elements, user plane protocol stack, as well as the TCP in-teraction with LTE networks.

2.1 TCP Congestion Control

TCP is one of the critical protocols in the TCP/IP protocol stack, implementedover the network layer. TCP is responsible for a reliable and connection-oriented service, in-ordered delivery, and error check for the applications onthe internet [4]. Commonly, network applications requiring reliable connec-tion runs over TCP. For instance, FTP and email are run over TCP.

Congestion in the network is the degraded QoS when the network is trans-mitting more packets than it can deal with. Congestion may happen when asender sends too much packets to the network. Typical e�ects of congestioninclude excessive queue delays, packet loss and retransmission. Consequently,network performance, such as network utilization, degrades dramatically, andthe application performance is a�ected apparently.

As TCP is responsible for providing a reliable transfer of data for end-to-

7

Page 24: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

8 CHAPTER 2. BACKGROUND

end communication, one of the main features of TCP is congestion control,which ensures the sender does not overflow the network with too much datathan the network can handle.

TCP congestion control attempts to match senders sending rate to the avail-able bandwidth in the network. Since a large fraction of data tra�c in the net-work is TCP flows, the good performance of the TCP congestion control canbe beneficial for both users and operators as decreased latency, improved userexperience and high utilization of the precious spectrum resources.

It has been an active area for all kinds of networks, including both wirednetwork and radio network. To gain the basic knowledge of the already iden-tified problems as well as the proposed solutions, it is necessary to review thefundamental TCP congestion control mechanism. The related work is alsoreviewed in the following sub-section.

2.1.1 Basic TCP Congestion Control

After the first congestion collapse was observed in October 1986, Jacobsonand Karels defined the fundamental idea of congestion control in TCP anddescribed several algorithms that apply congestion avoidance and congestioncontrol in [22]. They defined a new principle called “packets conservation”.This principle describes that a connection should be conservative in order tobe in equilibrium. More specifically, a new packet can only inject into thenetwork only when an old packet leaves. According to their principle, threesituations fail packet conservation:

• The connection rarely gets to equilibrium.• The sender makes the new packet enter the network before an old packet

leaves.• The limitation of network resources prevents the link reaching equilib-

rium.

To fix the failures described above, Jacobson proposed several algorithms.The slow-start algorithm is introduced to solve the first failure. Retransmissiontimer and Retransmission TimeOut (RTO) estimation are developed to solvethe second failure, while the congestion avoidance algorithm is used to addressthe third failure. These algorithms are combined and known as the famousTCP congestion control algorithm. It is standardized in [23].

Page 25: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 2. BACKGROUND 9

Slow-Start

The first problem with the packet conservation principle is how to reach equi-librium in the network. It requires the sender to find out the current bandwidthand inject the packet that corresponds to the current bandwidth. At the begin-ning of the connection, to utilize as much bandwidth as the sender can, it isrequired to inject new packets faster than old packets exits, so that the numberof packets in-flight gradually increases.

However, the speed of injecting the packet should be defined carefully. Ifthe speed is too low, the connection gets to equilibrium slowly, which is a wasteof network resources. If the sender sends packets aggressively, it may exceedthe network capacity and cause packet loss in the network.

In [22], Jacobson introduced the slow-start algorithm in order to solve theproblem mentioned above. Slow-start algorithm gradually increases the send-ing rate to progressively inject packets into the network, so that the algorithmcan probe the available bandwidth. It adds a new variable called the con-gestion window (cwnd). When the sender receives an ACK of the previouspacket, it increases cwnd by one packet. At the beginning of the connection,or when there is packet loss, it sets to one and repeats the increasing. It sendsthe number of packets that equals to the minimum senders sending windowand cwnd. Additionally, a slow-start threshold (ssthresh) is introduced asthe upper limit of the cwnd. When cwnd is larger than ssthresh, it exits theslow-start mode and change to congestion avoidance, which is introduced inthe following section.

Slow-start algorithm increases the cwnd exponentially every RTT , and itguarantees that the connection transmits data at the rate at most twice the max-imum possible on the path. Even though the idea of the slow-start algorithmis simple, it is used in many congestion control algorithms with little modifi-cation until recently. A modification is made in the slow-start algorithm forCubic CCA in 2008 [8], which is introduced in Section 2.1.2. The modifi-cation in Cubic addresses the problem that the original slow-start can easilyovershoot and lead to high delay as well as excessive packet loss.

Retransmission Timer and Retransmission Timeout Estimation

In [22], the authors describe the risk of breaking the conservation principlebecause of unnecessary retransmission. TCP leverages a timeout/retransmitmechanism to recover from lost packets. It is essential to set the correct re-transmission timeout (RTO) for retransmission. If the RTO is set too long,it takes a long time for the sender to be aware of packet loss and start re-

Page 26: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

10 CHAPTER 2. BACKGROUND

transmission, which is ine�cient. If the RTO is set too short, unnecessaryretransmission would be sent, which reduces the network utilization.

In order to leverage as much as network resources, the RTO should be setslightly larger than the round-trip time (RTT ), which is the length of time af-ter a packet to be sent as well as the length of time for an ACK of the packet tobe received. Intuitively, TCP introduces RTT to estimate the timeout RTO.Therefore, RTO is dependent on the measurement of RTT . The correct mea-surement of RTT is beneficial for the high e�ciency of data transmission inthe network.

In the original design of TCP [24],RTO is estimated based on the smoothedRTT . It records several RTT value and calculates the smoothed RTT basedon Equation (2.1), where SRTT denotes the smoothed RTT , RTT denotesthe value of RTT samples. RTO is estimated based on Equation (2.2), whereUBOUND is the upper bound of timeout time,LBOUND is the lower boundof the timeout time. However, this scheme uses the exponential weighted mov-ing average to calculate the RTT , inducing that the significant variation ofRTT during congestion is smoothened.

SRTT = (↵ ⇤ SRTT ) + [(1� ↵) ⇤RTT ] (2.1)RTO = min {UBOUND,max [LBOUND, (� ⇤ SRTT )]} (2.2)

To solve this problem, Jacobson and Karels proposed a new method tomeasure theRTO in [25]. This algorithm introduces the deviation between thelatest RTT sample and the smoothed RTT as an index. Equation (2.4) showsthe deviation is calculated as the weighted moving average of the di�erencebetween RTT and smoothed RTT , where DevRTT denotes the deviation.Also, it uses smoothed RTT as well as the deviation to calculate the RTO, asEquation (2.5) shows. This method is still used today and implemented in theLinux kernel.

SRTT = SRTT ⇤ ↵(RTT � SRTT ) (2.3)DevRTT = (1� �) ⇤DevRTT + � ⇤ (|RTT � SRTT |) (2.4)

RTO = µ ⇤ SRTT + ✓ ⇤DevRTT (2.5)

Congestion Avoidance

It is hard to maintain the equilibrium status forever in the network. New hostsjoining the network could induce congestion in the network. In order to main-tain equilibrium status, it requires senders to reduce the sending rate. When

Page 27: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 2. BACKGROUND 11

an old connection ends, network resources will be released to be used by theremaining of the hosts in the network. In this situation, senders can increasetheir sending rate to leverage the available network resources. Therefore, acongestion avoidance algorithm is introduced to adjust the sending rate basedon network available resources and status.

As mentioned in the previous section, ssthresh is the upper bound of thecwnd. When cwnd exceeds ssthresh, it starts the congestion avoidance mode.In congestion avoidance algorithm, it increases cwnd linearly. More specifi-cally, it increases cwnd by one segment every RTT. It can avoid cwnd growstoo fast, leading to network congestion, and utilize as much available band-width as possible.

If the RTT estimation is correct, the packet is lost during the transmissionbecause the packet is damaged during the transmission, or the network is con-gested. In the fixed network environment, the network is quite stable; packetloss can be regarded as the indicator as congestion. With the improvement ofRTO calculation, a timeout is caused by packet loss. Therefore, many CCAs,such as TCP Reno [7], TCP NewReno [26], utilize packet loss as the conges-tion indicator and take measures in congestion avoidance algorithm to get ridof network congestion. When a timeout occurs in the network, ssthresh iscut to 50% of the cwnd. At the same time, cwnd is set to 1 and restart theslow-start algorithm to probe the available bandwidth again. This scheme iscalled as Additive Increase/Multiplicative Decrease (AIMD) and used in manyCCAs.

Fast Retransmit and Fast Recovery

The Fast Retransmit algorithm is intended to recover from loss packets basedon the receivers feedback instead of waiting for the retransmission timer ex-pires. When the sender receives three duplicate ACK, it will start to retransmitthe missing packet instead of waiting until timeout. In the early CCA, TCPTahoe, it executes the same operation as the congestion avoidance algorithm:it cuts the ssthresh to 50% of the cwnd, resets the cwnd to 1, and enters slow-start. Therefore, the cwnd drops to 1 every time the sender detects networkcongestion. On the one hand, it relieves the network congestion e�ectively. Onthe other hand, it takes a long time to achieve high link utilization as beforeafter congestion happens.

In TCP Reno [7], it proposed the Fast Recovery algorithm. It aims to avoidgoing back to the slow-start phase every time network congestion is detected.When the receiver sends a duplicate ACK, it indicates that the receiver re-

Page 28: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

12 CHAPTER 2. BACKGROUND

ceives an out-of-order packet, showing that one packet has been dropped outof the network. Therefore, when the sender receives three duplicate ACKs,it means that the receiver has received three new packets, but the packets areout-of-order. In other words, the network is not congested severely, comparedwith the case of retransmission timeout. It is unnecessary to reduce the cwndaggressively.

The following shows how the Fast Recovery algorithm does. It updatesssthresh to one-half of the current cwnd. Then the sender retransmits themissing segment specified by the duplicate ACKs and set the cwnd to ssthreshincreased by three. Every time the sender receives another duplicate ACK,cwnd is increased by one. Then the sender sends a new packet if the size ofcwnd allows. When the sender receives a new ACK, it exits Fast Recovery,sets cwnd to ssthresh, and enters the congestion avoidance phase, startinglinear increasing of cwnd.

However, this algorithm relies on three duplicate ACKs. It is noticeablethat the three duplicate ACKs do not always indicate the loss of only one spe-cific data packet. It is possible that the following data packets are also missingduring the transmission. However, the sender can only learn about the singlemissing packet each RTT . The rest of the missing packet can only be foundout in the following RTT , which is ine�cient.

To address this problem, Selective Acknowledgment (SACK) option is in-troduced to fix the behavior in the face of multiple missing packets [27]. WithSACK, the sender can be smarter to retransmit only the missing packets in-stead of retransmitting all the packets blindly. The receiver can inform thesender that the packet that has been received successfully, so the sender canretransmit the packets that have actually been missing during the transmission.However, the SACK option uses two TCP extensions to report the receivedpackets, which requires both the receiver side and sender side to update theirhardware to support SACK option.

TCP NewReno [26], the improvement of Fast Retransmit of TCP Reno,was proposed to handle multiple missing packets when SACK option is notavailable. When the sender receives three duplicate ACKs, it enters the FastRetransmit phase and retransmits the indicated packet. If there is a single miss-ing packet, the sender will receive an ACK that acknowledges all the transmit-ted packets. If there are multiple missing packets, the sender will receive anACK that acknowledges some of the transmitted packets, which is regarded aspartial ACK. Then the sender continues retransmitting the first packet that hasnot been acknowledged. In NewReno, it ends the Fast Recovery phase untilthe sender does not receive a partial ACK.

Page 29: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 2. BACKGROUND 13

2.1.2 Related Works

The underlying mechanisms of TCP congestion control are presented in theprevious section. It is the foundation for the researcher to develop new CCAsto solve the problems appearing in the specific network environment.

Many CCAs have been developed and implemented over the years. Forreadability consideration, only a selection of the CCAs that is mostly relatedto our case is presented in the report.

Cubic is the most widely implemented CCA in the Linux kernel [8]. It isdeveloped in order to improve the scalability of TCP over large bandwidth-delay networks. It can adjust the size of cwnd based on the RTT . Insteadof using linear window growth in TCP Reno [7], Cubic uses a cubic functionas the growth function of the cwnd size. Equation (2.6) shows how the sizeof cwnd is calculated, where Wcubic is the current congestion control windowsize, C is the cubic index, Wmax denotes the cwnd when congestion happenspreviously, t is the time interval since the last window reduction, K is thetime period that is calculated using Equation (2.7). From Equation (2.7), weknow that the growth of cwnd is independent on RTT . It only depends on themaximum cwnd size and the time interval between the current time and whenthe last congestion happens. This allows the fast growth of the cwnd whenthe cwnd is far from the limit and slow growth when the cwnd is close to thelimit (because it is easy to be congested when the cwnd size is close to thelimit), which can guarantee high link utilization of the available bandwidth inthe network and get lower packet loss rate.

Wcubic = C(t+K)3 +Wmax (2.6)

K =3

rWmax�

C(2.7)

When there is packet loss in the network, Cubic reduces the cwnd multi-plicatively. Moreover, it repeats the growth process, as mentioned above. Theadvantage of Cubic is that it can maintain high sending rate if there is no packetloss. As a result, it can utilize the available bandwidth as much as possible inthe high-bandwidth and low packet loss networks. However, it is unable todistinguish the packet loss due to congestion and transmission error. It maymislead the TCP entity to lower the sending rate even though there is no con-gestion in the network. Additionally, Cubic is aggressive to increase the cwndand fill up the bu�er when there is no packet loss, resulting as bu�erbloat. Itincreases the unnecessary queuing delay in the network.

Since Cubic tends to fill up the bu�er when there is no packet loss, Data

Page 30: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

14 CHAPTER 2. BACKGROUND

Center TCP [11] improve the performance of congestion control in cloud datacenter by leveraging Explicit Congestion Notification (ECN) [12] to providemulti-bit feedback of network congestion to the hosts. It tries to maintain lowqueue length in the bu�er without a�ecting the throughput. When the queuelength is longer than the threshold, it notifies the sender to reduce the sendingrate so that it can avoid packet drop. Also, instead of cutting down the cwnd

drastically, the sender reduces the cwnd accordingly based on the congestionlevel reported by ECN.

BBR is a congestion-based CCA developed by Google in 2016 [10]. Inaddition to the methods mentioned above, it regards that the congestion in thelink happens when the number of in-flight packets is larger than the productof bandwidth and delay. It measures the maximum bandwidth and minimumRTT periodically. Based on the measurements, it estimates the throughputand paces out packets at a rate given by the estimated throughput. The prod-uct of the maximum bandwidth and minimum RTT is used as the cwnd size,which guarantees the size of the cwnd is equivalent to the network resources.Moreover, because the cwnd is measured accurately, BBR does not increasethe cwnd infinitely. It does fill up the bu�er of the network devices. As a result,it can avoid the bu�erbloat e�ect and lower the delay significantly. In the net-work that has high packet loss and high delay, BBR has a higher transmissionrate compared with Cubic.

2.2 LTE Network Architecture

In this section, the general knowledge of LTE network is introduced. Sec-tion 2.2.1 describes the network element in the LTE network. Section 2.2.2introduces the protocol stack of the user plane, mainly focusing on the inter-face between the base station and the UE. Section 2.2.3 discusses some relatedwork.

2.2.1 Network Elements

The introduction of LTE network structure and elements are taken from [28].There are di�erent elements in the LTE network. Figure 2.1 shows the

architecture of an LTE network. The radio access network consists of UserEquipment (UE) and E-UTRAN Node B (eNB). The Evolved Packet Core(EPC) is the core network of Evolved Packet System (EPS). The user planecomponents of EPC are the Serving Gateway (SGW) and the Packet Data Net-work Gateway (PGW). The connection between UE and eNB is the wireless

Page 31: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 2. BACKGROUND 15

connection, while the connection between eNB and EPC as well as the con-nection between EPC and the internet are wired connection. The bandwidthof the wired link is more stable and larger than the bandwidth of the radio link.Therefore, it is assumed that the bottleneck bandwidth between the server andthe client is the radio link between UE and eNB.

Figure 2.1: Architecture of LTE network

The detailed introduction of the network elements are as follows:User Equipment (UE) User equipment is the device used by the users.

Currently, a UE can be a smartphone, a tablet, or a wearable device.E-UTRAN Node B (eNB) eNB is the radio base station in the LTE net-

work. It is the bridge between the UE and the EPC. It is responsible for han-dling communication in the radio network. Moreover, it takes charge of re-source management, based on the reported radio parameters and QoS require-ments from the UEs, as well as mobility management, for instance, handlingthe UEs handovers to another cell.

Serving Gateway (SGW) SGW is the network node that connects thePGW and the eNB associated with the UE. Its function is routing and for-warding the user data packets to the PGW.

Packet Data Network Gateway (PGW) PGW is the edge node betweenthe EPC and the internet. It allocates the IP address to the UE, filters thepackets, enforces the policy, and tunnels all tra�c between the UE and theinternet.

2.2.2 User Plane Stack

The description of the user plane stack in LTE networks are taken from [29].

Page 32: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

16 CHAPTER 2. BACKGROUND

The protocol stack in the LTE network is separated into a control planestack and a user plane stack. The user plane is responsible for handling therouting of the packets between the internet and the UE.

Figure 2.2 shows the user plane stack used in the LTE network from theedge of EPC to one UE. The interface between the UE and eNB is LTE-Uuinterface, while eNB connects with SGW via S1-U interface. SGW and PGWare linked with each by S5/S8 interface. Since the bottleneck link in the net-work is the radio link between UE and eNB, the protocol stack between UEand eNB is going to be introduced in detail.

Figure 2.2: LTE user plane stack

When an application creates data packets processed by transport layer pro-tocols such as TCP and UDP, the packet is then encapsulated as an IP packet.Before handing to the Physical (PHY) layer to transmit, the packet is pro-cessed by the Packet Data Converge Protocol (PDCP) layer, Radio Link Con-trol (RLC) layer, and Medium Access Control (MAC) layer.

The user plane protocol stack between the eNB and UE consists of thefollowing sub-layers:

Packet Data Convergence Protocol (PDCP) This layer is responsible fortransmitting the user plane data to the IP layer. What is more, it supports IPheader compression based on the configuration from the upper layer, adds thePDCP header and sends the packet to the lower layer.

Radio Link Control (RLC) This layer locates on the top of the MAC layerand below the PDCP layer. The main task of the RLC layer is delivering thepackets to the upper layer in order.

Medium Access Control (MAC) MAC layer is mainly responsible forscheduling, error correction through Hybrid Automatic Repeat Request (HARQ),and handling the transfer blocks.

Page 33: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 2. BACKGROUND 17

2.2.3 Related Works

TCP is a network protocol that is originally designed for fixed networks. Theradio networks have di�erent behavior because they have di�erent infrastruc-ture and characteristics from the traditional fixed networks. In [9], Winstein etal. identified the challenges in cellular networks. The cellular networks haverapidly changing link condition and stochastic packet losses, a�ected by thephysical obstacles between the UE and the base station, the mobility of theUE, etc. As a result, the UE often experiences latency and fluctuations in therates in a short time. The packet loss and queuing delays are not indicative ofcongestions in the network. Therefore, there are some studies exploring thecongestion control in cellular network.

Instead of using TCP variants to probe the available bandwidth in the net-work, prior work has suggested ways for bandwidth estimation. A cross-layerapproach CQIC done by Lu, et al. [6] make use of the physical layer infor-mation, specifically Channel Quality Index (CQI) and Discontinuous Trans-mission Ratio (DTX), to estimate available bandwidth in Evolved High SpeedPacket Access (HSPA+) networks. CQIC does not require TCP to probe theavailable bandwidth, which does not require packet loss as the congestion indi-cator and avoids bu�erbloat e�ect in the Cubic algorithm. Additionally, it getsrid of the slow-start phase, which can make use of available bandwidth fromthe beginning. When the RTT is similar, CQIC can achieve higher through-put compared with Cubic. In large file transmission, the throughput perfor-mance is similar, while the CQIC reduces the average RTT by 2.38—2.65times. Since the original CQIC was evaluated in HSPA+ network, Zhong etal. adapted the implementation of CQIC from HSPA+ networks to LTE net-works. The results show that CQIC can also improve overall performance inLTE networks, compared with TCP BBR, but it introduces a little delay [30].

In [31], one of the network-based algorithms, resource fair algorithm, in-troduces cross-layer parameters to equalize the bandwidth for UE with real-time content that allows short delays, such as video data. The core of theresource fair algorithm is the estimation of the video rate for each user. It es-timates the video rate for each UE based on the number of active UEs in thecell and the CQI reported from the user. The maximum bandwidth of the linkis converted from the CQI mapping based on the definition in LTE specifica-tion [32]. This model takes the system load into consideration and is able tomaintain the video quality as well as the fairness with other types of flows.

There are some improvements on the previous TCP variants in order toadapt TCP in cellular networks. L4S is an enhancement of ECN marking that

Page 34: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

18 CHAPTER 2. BACKGROUND

provides ultra-low latency for all applications [13]. Studies from Ericsson [14]shows that in 4G/5G environment, DCTCP with L4S can keep very low queu-ing delay under 25ms compared with Cubic with ECN without losing linkutilization. Also, a study done by Atxutegi et al. [33] shows that BBR alsooutperforms TCP Cubic and TCP NewReno in the radio network. BBR haslower latency and lower downloading time compared with the other algorithmsin the scenario of high-speed mobility of UE.

2.3 Summary

This chapter presented high-level introductions:

- What is TCP congestion control? How do TCP congestion control al-gorithms work?

- How does the LTE network work? Together with the introduction of theLTE network architecture as well as the user plane protocol stack.

Page 35: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Chapter 3

Implementation and Development

This chapter describes the experiment where we carried out the implementa-tion and development in this degree project. It begins with an introductionof what engineering-related and scientific methods were applied, specificallyanalyzing, modeling, developing, and evaluating. It intends to provide anoverview of the research method used in this degree project.

Section 3.1 describes the data processing, including data collection, dataexploration, and data preparation. Section 3.2 focus on what model is usedand how we evaluate the model. Section 3.3 explains how to implement thepre-trained model to the system simulator. Finally, Section 3.4 concludes forthis chapter.

3.1 Data Processing

Data collection in Ericsson system simulator was the primary task at the be-ginning of the degree project. Section 3.1.1 explains how we capture the datafrom Ericsson system simulator. To explore the data, Section 3.1.2 describesthe correlation between the radio parameters and the user throughput. Sec-tion 3.3 describes the data preparation before the data was used for trainingthe model, including data cleaning and data normalization.

3.1.1 Data Collection

A Java-based Ericsson network system simulator was used in this degree project.It models all protocols in the radio network and is capable of applying simu-lation scenarios over di�erent types of radio access technologies (RATs).

19

Page 36: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

20 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

The simulator is able to log any information or parameters exchanged inthe radio network for later postprocessing in Matlab. Therefore, we can firstrecord the radio parameters under the full bu�er scenarios for model training.Under this scenario, it indicates the maximum bandwidth of each user by fillingup the link.

To train a model that can estimate the available bandwidth for each user,we first logged the parameters from the system simulator. Since our goal isutilizing the available bandwidth as much as possible, the original dataset isgenerated by running File Transfer Protocol (FTP) tra�c over User DatagramProtocol (UDP), so that the TCP congestion control does not restrict the userthroughput. At the cost of high packet delay and packet loss rate, the maximumbandwidth of each user exposes by running UDP tra�c. Multiple randomseeds were used in the simulations, which influenced the location of the usersand add randomness of users arrival. Therefore, the simulation results can bemore realistic.

Since the radio parameters were reported from the UE to the eNB at a highfrequency, while cell throughput and user throughput were reported at a lowerfrequency. It is di�cult for a model to use unfixed length of the input. One so-lution is sampling methods – over-sampling or under-sampling. For the high-frequency parameters, we applied under-sampling methods, which reduce thenumber of samples of the parameter. We aggregated the high-frequency pa-rameters as a mean value over a fixed time interval. We set the fixed timeinterval as 100ms, which has worked well with our simulation environment sofar.

For the low-frequency value, interpolation is a fast and easy way to insertnew points based on the trend of the curve. After sampling, the dataset hasa fixed time interval between di�erent observation and it can be used as themodel input feature. In our experiments, we set the fixed time interval as 100ms. It was sampled, processed and exported as .csv file in Matlab, in order toanalyze using the Python data analysis toolkit.

3.1.2 Data Exploration

After the logged parameters were processed in Matlab, the following step isexploring and analyzing the relationship between the logged parameters andthe target. The data were loaded on Jupyter Notebook for further exploration,with the help of Python data science toolkits, including scikit-learn, Pandas,Numpy, Matplotlib and Seaborn.

The collected parameters are radio parameters and the system parameters,

Page 37: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 21

which are listed in Table 3.1. The radio parameters, including RSRP (Ref-erence Signal Received Power), RSRQ (Reference Signal Received Quality),CQI (Channel Quality Index) and average quality, indicate the varying channelquality during the time. We also guessed the system parameters, the numberof users in the cell and the cell throughput, was related with the maximumbandwidth for each user. As our goal is to estimate the available bandwidthfor each user, our original target is the user throughput in the transport layer.However, there is no feedback signal in UDP. Therefore, we set the target asthe user HARQ (Hybrid Automatic Repeat Request) throughput in the physicallayer, which is the e�ective data rate for each user.

Table 3.1: Description of collected parameters

Name DescriptionRSRP Reference Signal Received Power: Linear aver-

age of reference signal power (in Watts) across aspecified bandwidth [34].

RSRQ Reference Signal Received Quality: Indicator ofinterference experienced by UE. It is calculatedfrom RSRP and interference metrics [34].

CQI Channel Quality Index: Indicator of how good orhow bad the communication channel quality is. Itis related to the bandwidth of the link [35].

Average Quality Indicator of the average signal quality per sub-band. Derived from CQI.

Number of ActiveUser

The number of users in the cell: it indicates thenumber of users connecting with the serving cell.

Cell Throughput The sum of the data rates that are delivered to alluser equipment in a cell.

HARQ Throughput The sum of the data rate of one user equipmentduring a time interval. Derived from HARQ sizeand HARQ success times.

The collected parameters were plotted in the pair plot to see both the distri-bution of single parameters and the relationship between two variables. Also,it can be used to identify the trends for follow-up analysis.

Figure 3.1 shows the pair plot of the collected parameters. The histogramson the diagonal shows the distribution of the single variable, while the scatterplots on the upper and lower triangles shows the relations between two vari-ables. We focus on the second row from the bottom, since the plots in this rowindicate the relationship between the target and the rest of the parameters. The

Page 38: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

22 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

RSRP, RSRQ, CQI, average quality, and cell throughput are positively corre-lated with the users HARQ throughput. Unfortunately, it is hard to see the re-lationship between the number of users in the serving cell and the users HARQthroughput. Based on Figure 3.1, we can conclude that the radio parametersand the system parameters are correlated with the users HARQ throughput.

Figure 3.1: The distribution of single collected parameter and the relationshipbetween two parameters

To get more valuable insights into the relationship among the parameters,the correlation matrix was calculated and visualized as the heat map with thehelp of Python Seaborn toolkit. Figure 3.2 shows the resulted correlation ma-trix. Our concentration is at the second row from the bottom. Based on thecorrelation matrix, we can verify that the RSRQ, CQI, average quality, servingcell throughput highly and positively correlates with the users HARQ through-

Page 39: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 23

put. RSRP positively correlates with the users HARQ throughput. Surpris-ingly, the number of users in the serving cell negatively correlates with theusers HARQ throughput. It is possible to be used to indicate the share of thenetwork resources of the users.

Figure 3.2: Heat map of the Pearson correlation matrix for the radio parame-ters and the user throughput

3.1.3 Data Preparation

It is vital for the model performance to choose the input features and alsoprocess the input values to find the suitable form for each model. Based on thecorrelation matrix shown by Figure 3.2, our input features are RSRP, RSRQ,CQI, the number of active users in the serving cell, average quality, and cellthroughput, while the output target is the user HARQ throughput.

Before the data was split into the train, validation, and test dataset, it isnecessary to clean and normalize the dataset first. Since the model is not able

Page 40: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

24 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

to process the input features that contain NaN value, the observations that haveNaN value are inspected and dropped.

Normalization was implemented for the input features and the output tar-get. The input features have di�erence units; in other words, the input featureshave di�erent scales. It increases the di�culty of the problem being modeled,especially for the neural network models. Also, it may su�er from poor per-formance during learning and sensitivity to input values resulting in highergeneralization error. For the output target, the massive spread of target valuesleads to a dramatical change of weight values, which makes the learning pro-cess unstable [36]. Equation (3.1) shows how the normalization was achieved.xnorm denotes the values after normalization. The minimum and maximumvalue of variable x were denoted by xmin and xmax.

xnorm =x� xmin

xmax � xmin(3.1)

Since the output target is normalized during the prediction, it is necessaryto convert to the actual value after prediction. Equation (3.2) shows how theactual value is calculated from the normalized value.

x = xnorm ⇤ (xmax � xmin) + xmin (3.2)

The prediction of the user throughput is not only about the correspondencebetween the user throughput, and the input variables in the previous observa-tion, the previous trend of how the variables vary are also essential for theprediction. The previous observations are required to be considered as theinput parameters for the models. A parameter called ”look back steps“ wasintroduced to decide how many previous observations were used as input.

The rest of the problem is how to transform the dataset into a feature ma-trix for the neural network models. Seven input features (RSRP, RSRQ, CQI,average quality, the number of active users in the serving cell, serving cellthroughput, and users HARQ throughput) were combined with the output tar-get in the next timestep as a single observation, where each observation is atimestep, and each column is a parallel time series. In the project, the intervalbetween each timestep is set to 100 ms; the “look back steps” was set as 3.Therefore, the first sample consists of the first three timesteps of each parallelvariable, and the output target would be the output series at the fourth timestep.

After the transformation, several output targets require to be discarded,because there are no three previous time steps of input variables for the firstoutput step. The number of timesteps to look back determines the number of

Page 41: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 25

output values be discarded. For the MLP model, it expects a two-dimensionalarray as its input shape. For the LSTM model, it expects a three-dimensionalarray as its input shape, which is [samples, timesteps, features]. After the trans-formation and discard, the input features are reshaped as a three-dimensionalarray.

3.2 Modeling

Modeling [37] is a scientific method that is used to explain and predict thebehavior of real objects or systems. It aims to make the particular phenomenonor object of the world easier to understand, visualize, define, or predict byreferencing it to exist.

In this section, the neural network method used in this project demonstrateswith its basic structure, mathematical background, and parameters need to betuned in the application. Also, the evaluation metric and methods of the modelare described in the following subsection.

The neural network models were trained and evaluated in the Python en-vironment, using the neural network library called Keras [21].

3.2.1 Multi-Layer Perceptron (MLP)

Multi-layer Perceptron (MLP) is the most basic feedforward Artificial NeuralNetwork (ANN) [38]. The feedforward ANN means that the information onlymeans forward in one direction without any loops. An MLP model consists ofat least three layers of neurons: 1) an input layer, 2) one or more hidden layer,and 3) an output layer.

Figure 3.3 shows the structure of an MLP model. Each layer is fully con-nected to the next layer, i.e., each neuron on a specific layer connects with allthe neurons in the next layer. Activation function f used by each neuron intro-duces non-linear mapping and makes the model to be more expressive. Eachneuron contains a connecting weight that indicates the importance of the inputand connects with all the neurons in the next layer.

The backpropagation algorithm is introduced to train MLPs [39]. The al-gorithm consists of a forward pass and a reverse pass. In the forward pass, thealgorithm feeds the training data into the network and computes the output ofeach neuron. The output of the neuron is shown in Equation (3.3). N denotesthe number of neurons in the current layer,wj

ik represents the weights from theneuron i in the previous layer to the neuron k in the current layer j, b is thebias and f represents the activation function. The same operation applies in

Page 42: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

26 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

Figure 3.3: Structure of the MLP model

each neuron and in each layer, and finally, the output is calculated in the outputlayer.

yi = f(NX

i=1

wjikxi + b) (3.3)

Then it measures the output error of the network. Cost function is the func-tion used to measure the di�erence between the prediction value and the actualvalue. Normally, the mean squared error (MSE) is used as the cost functionfor the regression problem [40]. Equation (3.4) shows the mathematical ex-pression of MSE, where Yi denotes the actual value of the target, Yi denotesthe prediction of the target, and n denotes the number of data points.

MSE =1

n

nX

i=1

(Yi � Yi)2 (3.4)

In the reverse pass, it computes how much each neuron in the last hiddenlayer contributed to the error of each output neuron. Then, it measures theerror contribution from the previously hidden layer. The operation applies inthe reverse pass until it reaches the input layer. The last step of the algorithm isupdating the weights and bias in the network to reduce the error using the errorcontribution that measured before. Equation (3.5) shows how the weights and

Page 43: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 27

biases are updated during each iteration.

✓t+1 = ✓

t � ↵#E(X, ✓

t)

#✓(3.5)

Activation function can introduce the non-linear relationship of weights,biases, and neurons. Therefore, the model is able to find the complex mappingbetween the inputs and the outputs, which is more suitable for the problemsin real life. The activation functions that are mostly used in the hidden layerfor regression problems are tanh, Rectified Linear Unit (ReLU), ExponentialLinear Unit (ELU), and Scaled Exponential Linear Unit (SELU) [40]. Equa-tions (3.6), (3.7), (3.8), (3.9) are the formulas of these activation function. Forthe regression problem, it is common that there is no activation function forthe output layer.

f(x) =ex � e

�x

ex + e�x(3.6)

f(x) =

(0 x < 0

1 x >= 0(3.7)

f(x) =

(↵(ex � 1) x < 0

x x >= 0(3.8)

f(x) = �

(↵(ex � 1) x < 0

x x >= 0(� = 1.0507,↵ = 1.67326) (3.9)

During the training process, the error of the model gradually reduces andcan perform well on the training data. To make the model perform well on thesystem simulator, the model should be able to give prediction of the new andunseen input data [38].

Overfitting happens when the model fits well with the training data wellbut in practice lacks generalization ability on unseen data from the problemdomain. Overfitting leads to poor performance of the model.

The line plot of training error versus validation error can be used to di-agnose if overfitting happens. If the model is good on both training data andvalidation data, the training error and validation error decrease gradually andstablize around the same point in the line plot. If the model is overfitting, thetraining error and validation error decrease, hit an inflection point, and fluctu-ates.

There are a few methods to avoid overfitting, such as constraining modelcomplexity, regularization. Regularization is commonly used for avoiding

Page 44: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

28 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

overfitting in the neural network. It imposes some sort of smoothness con-straint on the neural network model [41]. Early stopping is typical regular-ization method that helps avoid overfitting [38]. In each training iteration,the model is evaluated on a validation set. In the beginning, both training er-rors and validation errors decrease. When it detects the performance of thevalidation data starts to degrade, then early stopping algorithm stops train-ing. Therefore, the model keeps the good generalization performance beforeit overfits.

The primary hyperparameters that a�ect the performance of the MLP arethe number of hidden layers, the number of neurons in every hidden layer, thetype of activation functions used in each layer. There are no rules of thumb forfine tuning the hyperparameters. The choice of suitable hyperparameters relieson the architecture of the network, the type of activation functions requiresthe test, etc., and requires test and trial on the system performance of specificdataset [42].

3.2.2 Long Short-Term Memory (LSTM)

Traditional neural networks, such as feedforward neural network, are unableto make an estimation based on the previous information; in other words, itcannot memorize the information from a sequence. Recurrent Neural Network(RNN) addresses this issue by adding loops in the network so that it allowsinformation to be persistent [43]. RNN has the advantage of connecting theprevious information to the current mission. Figure 3.4 shows the schematicof the standard RNN model.

Figure 3.4: Schematic of the standard RNN model

Page 45: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 29

The loop allows the learning pattern to pass from one neuron of the net-work to the next. This chain-like structure of RNN is naturally suitable tocope with the sequence-to-sequence problem, such as time-series forecastingand handwriting recognition. However, when the gap between the previousinformation and the current mission is large, RNN becomes unable to under-stand the related information [44].

Long Short-Term Memory (LSTM) network is a special kind of RNN thatintroduces to solve the problem of traditional RNN [45]. It introduces a mem-ory cell and control gates to forward the learning patterns from through theoutput sequence so that it is able to keep long-term dependency. Figure 3.5shows the basic structure of LSTM.

Figure 3.5: Basic structure of LSTM model

A typical design of LSTM cell consists of a memory cell, and three con-trol gates [46]. The memory cell is the memory part of an LSTM unit. It runsstraight through the cell with the linear operation, which maintains the long-time memory. The control gates are intended to add new information or deletethe unnecessary information by passing the information optionally. An LSTMcell has three types of gates, which are input gate, output gate, and forget gate.A gate is made up of a sigmoid neural net layer and a pointwise multiplicationoperation. The output of the sigmoid layer is a number between 0 and 1, con-trolling the percentage of each component getting through. If the value is 0, itindicates the gate lets nothing through. If the value is 1, it means the gate passeverything through.

Figure 3.6 shows the schematic of the LSTM network. First, the LSTMneeds to decide what information continues to get through this cell by the forgetgate. The input of the forget gate is ht�1 and xt, where the ht�1 denotes thelatest output, and xt is the new input. The output of the forget gate ft is the

Page 46: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

30 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

value between 0 and 1, which indicates the weights of information from Ct�1.Equation (3.10) shows the output of the forget gate. Wf denotes the weight ofthe input gate, while bf denotes the bias.

Figure 3.6: Schematic of the LSTM cell

ft = �(Wf · [ht�1, xt] + bf ) (3.10)

Secondly, the LSTM cell decides how much new information will be addedto the cell state. The input gate decides which information requires an update.Equation (3.11) shows the output of the input gate it. The tanh layer also gen-erates new candidate values Ct based on the input of the LSTM cell. Equa-tion (3.12) shows the output of the tanh layer Ct, where Wc is the weight ofthe tanh layer, bc is the bias. Eventually, the output of the input gate it andthe output of the tanh layer Ct are combined. The cell status Ct is updatedbased on the result from the input gate and the result from the forget gate.Equation (3.13) shows how the updated cell state is calculated.

it = �(Wf · [ht�1, xt] + bi) (3.11)Ct = tanh(Wc · [ht�1, xt] + bc) (3.12)

Ct = ft ⇤ Ct�1 + it ⇤ Ct (3.13)

Finally, the LSTM cell produces the output value depending on cell status.The output gate filters what input information is output. Equation (3.14) showsthe mathematical expression the result of the output gate ot, where theWo is the

Page 47: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 31

weight of the output gate, bo is the bias. The updated cell status goes througha tanh layer. Equation (3.15) shows how the output of the LSTM cell ht iscalculated. The weight calculated in the output gate and the result of the tanhlayer is combined as the output of the LSTM cell.

ot = �(Wo · [ht�1, xt] + bo) (3.14)ht = ot ⇤ tanh(Ct) (3.15)

3.2.3 Evaluation of Model

In addition to evaluating the performance from the time series plot, it is neces-sary to use numerical results to evaluate the performance of the model. Rootmean squared error (RMSE) is used to measure the average distance betweenthe actual value and the prediction [40]. Equation (3.16) shows the mathemat-ical expression of RMSE, where Yi denotes the actual value of the target, Yi

denotes the prediction of the target, and n denotes the number of data points.

RMSE =

vuut 1

n

nX

i=1

(Yi � Yi) (3.16)

RMSE provides the general error level of the model. Besides calculat-ing RMSE, it is also important to assess the appropriateness of the model bydefining residuals and apply residual analysis [47]. Equation (3.17) shows themathematical expression of residual e, which is simply the di�erence betweenthe observed value of the actual value of the target Yi and the predicted targetYi.

e = Yi � Yi (3.17)

Cross-validation is an important technique to select a suitable model forgiven tasks and assess the model performance under di�erent hyperparametersettings of the model [40]. Originally, the model is trained on the dataset ofknown data (training dataset), and it is tested on the unknown data (validationdataset). Cross-validation trains several neural network models on subsets ofthe training dataset and evaluates them on the complementary subset of thedata. In other words, it splits the training dataset into several smaller trainingdataset and the complementary of the smaller training dataset is the validationset.

K-fold cross-validation means splitting the training set randomly into K

Page 48: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

32 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

subsets called folds [40]. Each subset has the same size. One of the K subsetsis retained as the validation set, while the rest of the K-1 subsets are usedas new training data. Then the model is trained using the new training data,validated on the validation set. The cross-validation process repeats K times,ensuring that each subset is used as validation data and only once.

During the training process, once the validation error stops decreasing orstarts increasing in a certain period, the training process stops immediately.The hyperparameters during the training process stops are regarded as the suit-able hyperparameters for the models. In this project, a 5-fold cross-validationwas applied to figure out the most suitable settings for the models. Table 3.2shows the brief description of the hyperparameters that we focused on.

Table 3.2: Description of hyperparameters of neural networks

Number of HiddenLayers

Defines the number of layers of nodes betweenthe input and output layer.

Number of Neurons Define the number of nodes on each layer.Activation Function Introduces non-linear relationship of weights,

bias and neurons.Optimizer Updates the weight parameters to minimize the

loss function.Initializer Defines the way to set the initial random

weights of layers.Batch Size Defines the number of samples to work through

before updating the internal model parameters.

After describing the hyperparameters that we would tune, Table 3.3 showsthe configuration choice for MLP model, the fine-tuned configuration is demon-strated in the Chapter 4.

Table 3.3: Configuration choice for MLP

Hyperparameter OptionsNumber of Hidden Layers 3, 4, 5Number of Neurons 50, 60, 70, 80, 90, 100Activation Function tanh, ReLU, ELU, SELUOptimizer Adam, SGD, Adadelta, AdagradInitializer RandomNormal, RandomUniform, NoneBatch Size 64, 128, 256, 512

The configuration choice for LSTM model is listed in Table 3.4. Theseconfiguration pairs are evaluated and demonstrated in Chapter 4.

Page 49: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 33

Table 3.4: Configuration choice for LSTM

Hyperparameter OptionsNumber of Hidden Layers 1, 2, 3Number of Neurons 40, 45, 50, 55, 60, 65, 70, 75, 80Activation Function tanh, ReLU, ELU, SELUOptimizer Adam, SGD, Adadelta, AdagradInitializer RandomNormal, Random Uniform, NoneBatch Size 64, 128, 256, 512

3.3 Implementation in the System Simulator

After the model is trained and validated using Keras in a Python environment,it is important to integrate the pre-trained model with the system simulator andinvestigate the performance in the Java-based system simulator.

Keras supports to save the parameters of the pre-trained model into a sin-gle HDF5 file, which is a data format to store and organize a large amount ofdata [48]. In the HDF5 file, it involves the architecture of the model, the weightof the model, the training configuration (i.e., loss function, optimizer) and thestates of the optimizer [49]. Therefore, the pre-trained model can be reloadedfrom the HDF5 file in Python environment or other programming languageenvironment. In addition to saving the model into an HDF5 file, Keras sup-ports to save only the model architecture or only the weights into a JSON file,which is semi-structured human-readable and allows to be edited and modifiedmanually.

Since the system simulator is developed using Java, the third-party libraryDeeplearning4j (DL4J) [50] provides Keras model import function to load thepre-trained Keras neural network models in Java environment. Therefore, aKeras sequential model can be loaded from an HDF5 file as a DL4J MultiLay-erNetwork object in a Java program.

In order to give predictions in the system simulator, the input feature isrequired to form as the required shape. We extended some functions in thesystem simulator to collect, process, and provide data samples. The collecteddata samples are converted into an n-dimensional array by ND4J [51].

As it is described in Section 3.1, the input features are from the physicallayer and the MAC layer. The collected information about the previous datatraces is used to predict the future user throughput. More specifically, a 100-millisecond time window is set, and we collect the parameters that fall intothe current time window [0, T]. The collected parameters are aggregated as

Page 50: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

34 CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT

the average value and then used to predict the user throughput for the timeinterval [T, 2T].

To make the transport layer aware of the input features, we applied somemodifications in the simulator. Figure 3.7 shows the cross-layer design in thesystem simulator. The radio parameters (RSRP, RSRQ, CQI, average qual-ity, the number of active users in the serving cell, serving cell throughput, andusers HARQ throughput) are collected in the physical layer. The user through-put is collected in the MAC layer. These data traces are collected to the PDCPlayer and aggregated as the mean value over the fixed time interval, which isset to 100 ms. The neural network model is also loaded in the PDCP layer.Based on the data samples, it gives the prediction of the user throughput forthe future time window. The prediction is used as the estimated bandwidthand is sent to the transport layer. After receiving the estimated bandwidth inthe transport layer, the size of the cwnd is adjusted accordingly.

Figure 3.7: Cross-layer design in the system simulator

As it is described in Section 3.1.3, we considered the history target value asthe input feature. The look back steps is set to 3 and the time interval betweeneach timestep is set to 100 ms. The value of look back steps and the timeinterval have worked well with our experiment so far. At the first 200 ms, only

Page 51: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 3. IMPLEMENTATION AND DEVELOPMENT 35

two timesteps of observations are collected in the PDCP layer. The modelis unable to give prediction because it requires its requires three timestepsof observation as its input features. Therefore, the CCA reuses the slow-startphase in the first 300ms, and it exits the slow-start phase when the model startsto give a prediction.

After the first 300 ms, there are enough history observations for the modelto give prediction. The estimated bandwidth is used directly as the sending ratein the transport layer. In reality, it is possible that the predicted user through-put deviates from the actual throughput. Overestimation of the available band-width leads to high queue delay and bu�erbloat. To prevent this problem, acwnd is used as a hard brake.

Ideally, the cwnd is expected to set as small as possible, but it should belarge enough to fill up the link. To avoid the sending rate estimation errors,the cwnd size is set to the product of the predicted sending rate and twice theRTT.

Moreover, we also used a compensation of RTT to prevent overestimation.In our tested scenario, the RTT would be less than 100 ms if there is no con-gestion in the network. We set an RTT threshold to 100 ms to avoid the e�ectof overestimation. In the transport layer, TCP detects the RTT each time itreceives an ACK. If the RTT is larger than 100 ms, it scales down the sendingrate to 95% of the estimation. If the RTT is smaller than 100 ms, it means thatthere is no congestion currently. The sending rate is set to be equivalent to theestimation. This RTT threshold can utilize as much bandwidth as possible andkeep the latency at a low level.

3.4 Summary

Chapter 3 described the process of this degree project from data processingto modeling methodologies. Also, direct implementation is introduced in thischapter. The MLP and LSTM model trained in this chapter are evaluated inthe next chapter.

Page 52: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Chapter 4

Experiments and Results

This chapter describes the evaluation of two neural network models, MLP andLSTM, as well as the verification of the models proposed in Section 3.2. Theperformance of the models is evaluated through a dynamic system simulationin an LTE network simulator.

Section 4.1 describes the experiment simulation environment. Section 4.2describes the first scenario of the evaluation and demonstrates the visual re-sults as well as the numeric metrics. Section 4.3 describes the performanceof the models compared with Google BBR as well as DCTCP with L4S. InSection 4.4, we state the summary for this chapter.

4.1 Experiment Environment

As mentioned in Section 1.5, we decide to use a simulation approach to studythe performance of di�erent TCP congestion control variants in the LTE net-works as this approach allows for a controllable and repeatable experimentalenvironment.

Ericsson network system simulator is used in this degree project, which isa flexible and extensible Java-based in-house network system simulator plat-form. Furthermore, it is capable of modeling di�erent types of RATs, includ-ing GSM (Global System for Mobile Communications), WCDMA (WidebandCode Division Multiple Access), LTE (Long-Term Evolution), and NR (NewRadio). It also models all protocols up from the application layer down to thephysical layer in detail. Moreover, it is able to perform simulation scenariosover various type of radio access network topologies.

In this degree project, the 3GPP (the 3rd Generation Partnership Project)typical urban topology area network model was used in the simulation. We

36

Page 53: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 37

first evaluated the algorithms in a single site with one cell per site scenario.Then, we evaluated the algorithms in a single site with three cells per sitescenario.

We first generated FTP running over UDP tra�c to log the maximum datarate of each user in the initial investigation. By running UDP, the downloadingrate is not restricted by the TCP congestion control mechanism. The sendingrate is set to two times larger than the maximum bandwidth of the radio link.Therefore, the packets can fill up the radio link so that the maximum availablebandwidth of each user is exposed at the price of high packet loss and packetdelay. This original dataset can be used to explore the relationship betweenthe cross-layer parameters and the maximum available bandwidth. Moreover,the input features were selected based on the relationship and the models weretrained based on this dataset.

After the models were pre-trained and tested on the training dataset, themodel was saved and loaded in the system simulator. To evaluate the perfor-mance of the models, the models were used as congestion control mechanismin TCP. Then, we generated FTP over TCP tra�c and compared the perfor-mance of them with Google BBR and DCTCP with L4S algorithms.

The simulation provides a certain number of FTP users active in the system(in the first scenario, the number of active users is 11, 13, 15; in the secondscenario, the number of active users is 15, 20, 25, 30). Due to the user positionand the physical obstacles, the number of users per cell varies, and the networkthroughput changes dynamically during the simulation time. The active usersare randomly distributed over the simulation area. UEs are moving at walkingspeed (3 km/h) and random initial position. In the second scenario, handovershappen due to the mobility of the users. Therefore, the given number of usersper cell is an average over all cells (the total number of users is divided by thenumber of cells), which means that some cells might have a higher or lowernumber of connected users.

Additionally, we assumed that when the users are active in the system, thecommunication channel is already established. In this way, the session set upfailure is avoided.

The time duration of the experimental simulation was set to 60 seconds.All simulation was performed with the same time duration of file transmission.Table 4.1 shows the parameters settings in the system simulator.

Page 54: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

38 CHAPTER 4. EXPERIMENTS AND RESULTS

Table 4.1: Simulation configuration for data collection

Topology ModelNumber of UEs 11, 13, 15 (15, 20, 25, 30)Number of eNBs 1Number of Cells 1 (3)Mobility Model StraightUE Velocity 3 km/hLTE RANPropagation Model 3GPP UrbanDownlink Scheduler Type Round RobinNumber of Resource Blocks 100 (Uplink/Downlink)Bandwidth 20 MHz (Uplink/Downlink)

4.2 The First Scenario

We first evaluate the performance of the model in a single eNB with one cellscenario in the Java-based system simulator. As it is described in Section 3.3,LTE PDCP module and TCP module were modified in order to implement thepre-trained models. Section 4.2.1 describes the o�ine training and evaluationof the models. Section 4.2.2 describes the evaluation of the direct implemen-tation in the system simulator and compares the models performance to thelatest TCP BBR as well as DCTCP with L4S.

4.2.1 Pre-Train and Test

For pre-training and testing the neural network models, we collected 91,823data points aggregated as the mean value over 100 ms. The history parametersto look back is set to 3, which means the models give a prediction for the future100 ms based on the past 300 ms information.

The hyperparameters, mentioned in Section 3.2.3, were fine-tuned by thecross-validation. Moreover, the learning rate and gradient decent were left attheir default values, as the default settings can have suitable decreasing rate ofloss. As the input layer and output layer is already fixed, we only focus on fine-tuning the number of hidden layers and the number of neurons on the hiddenlayer. The resulted fine-tuned configuration of the MLP model is shown inTable 4.2.

The choice of the hyperparameters settings of LSTM is listed in Table 4.3.Moreover, Table shows the fine-tuned configuration of the LSTM model. Orig-inally, LSTM uses tanh function as its activation function. The results show

Page 55: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 39

Table 4.2: Fine-tuned configuration for MLP

Hyperparameter OptionsNumber of Hidden Layers 3Number of Neurons 100-50-30Activation Function ReLUOptimizer AdamInitializer RandomUniformBatch Size 128

that with ReLU function, LSTM can achieve even lower RMSE.

Table 4.3: Fine-tuned configuration for LSTM

Hyperparameter OptionsNumber of Hidden Layers 2Number of Neurons 55-55Activation Function ReLUOptimizer AdamInitializer Random UniformBatch Size 128

As described in Section 3.2.3, it is important to calculate numerical metricsto evaluate the performance of the models. RMSE is chosen as the metric tocompare the performance of both LSTM and MLP models. Table 4.4 includestwo models to predict the potential throughput of the users, while RMSE onthe training dataset and testing dataset are listed in the table, respectively. Theactual value of the data points is running on UDP tra�c, which only showsthe maximum utilization of each user at the price of high packet delay. Theperformance of the models with TCP tra�c remains to be evaluated in thesystem simulator.

Table 4.4: root mean squared error comparison

Model Training Data [Mbps] Testing Data [Mbps]LSTM 0.210316 0.211538MLP 0.214905 0.216326

Page 56: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

40 CHAPTER 4. EXPERIMENTS AND RESULTS

4.2.2 Experiment in System Simulator

In Section 4.2.1, we got the pre-trained model that can track the change ofavailable bandwidth for each user. Since the original training dataset was gen-erated by the UDP tra�c, the resulted throughput represents the maximumavailable bandwidth for each user. The performance of the models in TCPtra�c was evaluated in the system simulator.

The simulation scenario remained the same as Section 4.2.1. However, thetra�c type was changed from FTP over UDP to FTP over TCP. The download-ing file size is 200MB. The delay is expressed as IP packet delay.

Figure 4.1 and 4.2 show a sample of the user throughput and delay com-pared with BBR and DCTCP. As shown by Figure 4.1, LSTM and MLP modelhave more stable user throughput than BBR and DCTCP. The models keep theTCP throughput around 5.5 Mbps.

Figure 4.1: Sample of user throughput compared with BBR and DCTCP withL4S

DCTCP with L4S dynamically changes the sending rate and shows an os-cillating behavior, which is an e�ect of global synchronization, i.e., that thedi�erent large file transfer flows (UEs) lock to one another so that when oneUE gets a lower throughput, another UE will get a higher throughput.

Page 57: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 41

BBR reacts similar with the neural network models, keeping the user through-put around 5.5 Mbps. However, it aggressively reduces the sending rate every10 s in order to estimate the minimum RTT properly and drain the bu�ers.

As shown by Figure 4.2, we can see that at the beginning, the delay of alltested algorithms increase, since they all use the slow start phase to probe thebandwidth at the beginning.

Figure 4.2: Sample of IP packet delay compared with BBR and DCTCP withL4S

DCTCP with L4S has an extremely low latency among the tested algo-rithms, which means that there are occasions when there is no data to transmitin the RLC bu�er. This leaves extra room for another UE (that has data in theRLC bu�er) to transmit data. Therefore, the throughput of DCTCP with L4Shas an oscillating behavior.

For the LSTM and MLP model, they have the highest delay among the al-gorithms, since the tend to utilize the available bandwidth as much as possible.They estimate the bandwidth based on the 300 ms history radio parameters andthroughput. It can get rid of the slow start phase and send the packets basedon the prediction. Then, the delay decreases gradually. It is not surprising tosee that the latency of LSTM and MLP keep below 100 ms. This is because

Page 58: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

42 CHAPTER 4. EXPERIMENTS AND RESULTS

the RTT-based adjustment (100 ms in our environment) is used to avoid thebu�erbloat problems described earlier when the LSTM and MLP algorithmsoverestimate the bandwidth. A lower RTT threshold such as 60 ms would belikely to give a lower delay.

For BBR, it drains the bu�er periodically to keep low latency at the priceof lower its sending rate aggressively. For DCTCP with L4S, its throughputfluctuates around 5.5 Mbps and keeps extremely low latency among the algo-rithms.

The system performance of the two neural networks are also evaluated andcompared with the Google BBR and DCTCP with L4S algorithms. Figure 4.3shows the average TCP throughput for a di�erent number of active users in thecell. As the number of active users grows, all tested algorithms react and adaptthe sending rate to a lower value. In general, MLP and LSTM can achieveslightly higher TCP throughput compared with BBR and DCTCP with L4S.To be more specific, when the number of active users in the system is 11,MLP and LSTM achieve 1% higher TCP throughput than the rest of the testedalgorithms.

Figure 4.3: Average TCP throughput for di�erent user load

Figure 4.4 is the cumulative distributive function for the users delay. Allthe tested algorithms can keep a low latency, which is lower than 100 ms for95% of the users. As mentioned above, LSTM and MLP can achieve slightly

Page 59: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 43

higher TCP throughput for the users. As a result, the packet delay of the usersis higher than the other two algorithms. 90% of the packets experience latencylower than approximately 80 ms when using LSTM and MLP as the congestioncontrol algorithms.

Figure 4.4: Cumulative distributive function of IP packet delay

As mentioned in Section 3.3, we set a compensation to regulate the sendingrate when the RTT is larger than 100 ms, in case of overestimation of theavailable bandwidth. As 90% of the packet delay is about 80 ms, it illustratesthat the estimation made by the models is accurate enough. Last but not least,90% of packets experience latency lower than 30 ms and 50 ms when usingBBR and DCTCP with L4S, respectively.

Figure 4.5 demonstrates the average cell throughput for di�erent user loads.Except for DCTCP with L4S, the rest of the algorithms achieve higher aver-age cell throughput as the number of active users in the system grows. MLPmaintains the highest cell throughput among the algorithms, while DCTCPwith L4S is the lowest. However, the improvement of cell throughput is notsignificant, because all the tested algorithms can maintain high link utilizationin the network. When the number of active users in the cell is 11, the cellthroughput of MLP rises by about 1.3% compared with DCTCP with L4S.

The downlink subbands utilization is presented in Figure 4.6. Generally,all the tested algorithms can utilize more than 98% of the downlink subbands.

Page 60: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

44 CHAPTER 4. EXPERIMENTS AND RESULTS

Figure 4.5: Average cell throughput for di�erent user load

The di�erences are however quite small. The line of LSTM, MLP and DCTCPwith L4S overlap as they have almost the same downlink subbands utilization,which is closed to 100%, while BBR can leverage approximately 99% of thedownlink subbands.

4.3 The Second Scenario

We then evaluate the performance of the model in the scenario of single eNBwith three cells per site in the Java-based network system simulator. The di�er-ence between the first and the second scenario is that intra-handover happensin the second scenario, which triggers the higher packet delay due to the han-dover. Also, the active users in the system experience higher interference sincethere is inter-cell interference in the multi-cells system.

Section 4.3.1 describes the o�ine training and evaluation of the models.Section 4.3.2 describes the evaluation of the direct implementation in the sys-tem simulator and compares the models performance to the latest TCP BBRas well as DCTCP with L4S.

Page 61: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 45

Figure 4.6: Downlink subbands utilization

4.3.1 Pre-Train and Test

Similar to the first scenario, we simulated users that downloaded a single200MB object over UDP. As there are three cells in the system, the inter-ference level is higher than the first scenario. The cell throughput changesdynamically, and it is lower than the first scenario because of the interferenceand handover.

After the cross-validation, the most suitable settings for this dynamic datafor the MLP model and LSTM model are listed in Table 4.5 and Table 4.6. Thelearning rate of the optimizers was left at the default value as its learning ratewas set to the smallest in the default setting. From the table, we can see thatwhen the scenario becomes more complicated, the neural networks requiremore hidden layers and more neurons in the hidden layers.

With the fine-tuned model, Table 4.7 shows the root mean squared erroron the training dataset and testing dataset, respectively.

4.3.2 Experiment in System Simulator

In Section 4.3.1, we got the pre-trained model that can track the available band-width for each user. Then we evaluated the performance of the neural network

Page 62: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

46 CHAPTER 4. EXPERIMENTS AND RESULTS

Table 4.5: Fine-tuned configuration for MLP

Hyperparameter OptionsNumber of Hidden Layers 4Number of Neurons 300-150-90-20Activation Function ReLUOptimizer AdamInitializer RandomUniformBatch Size 128

Table 4.6: Fine-tuned configuration for LSTM

Hyperparameter OptionsNumber of Hidden Layers 2Number of Neurons 60-60Activation Function ReLUOptimizer AdamInitializer RandomUniformBatch Size 128

Table 4.7: Root mean squared error comparison

Model Training Data [Mbps] Testing Data [Mbps]LSTM 0.485046 0.454508MLP 0.598963 0.580124

models in the system simulator. The users downloaded a 200MB file usingFTP over TCP. The initial position of the users was random, and the users se-lected the serving cell based on the RSRP and RSRQ level described in the3GPP LTE standard [52].

Figure 4.7 shows a sample of the user throughput changes as time varies.Generally, all the tested algorithms result in similar user throughput. All thetested algorithms can probe more available bandwidth for the UE.

As shown by Figure 4.7, LSTM model have more stable throughput com-pared to BBR and DCTCP. The throughput of MLP algorithms is much lowerthan the other algorithms from 10 seconds to 28 seconds, while the through-put of MLP becomes larger than the other algorithms from 50 seconds to 60seconds, which may induce high packet delay than the other algorithms.

DCTCP with L4S dynamically changes the sending rate. Unlike the firstscenario, it does not oscillate quite considerably because there are more flowsin the system. One down side of BBR is that BBR reacts more aggressively

Page 63: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 47

Figure 4.7: Sample of user TCP throughput compared with BBR and DCTCPwith L4S

than other algorithms. It increases the sending rate to probe more bandwidthand reduce the sending rate to drain the bu�er periodically.

Figure 4.8 illustrates that the delay of all tested algorithms increases at thebeginning, since they all use the slow start phase to probe the bandwidth. TheLSTM has the highest delay among the algorithms, which fluctuates around 80ms, since it tends to utilize the available bandwidth as much as possible. Also,the RTT threshold is set to 100 ms in our setting. It is not surprising to seethat the resulting IP packet delay is slightly lower than the threshold. However,the delay of the MLP model fluctuates severely as time changes, because theprediction error of the MLP model is higher than LSTM. The frequent changesof delay is not good as it makes the network system more unstable. Last but notleast, DCTCP with L4S can keep extremely low latency among the algorithms.Based on the result, The optimization on LSTM and MLP delay needs to bestudied in the future work.

Figure 4.9 shows a time plot of a sample of the cell throughput. In general,all the tested algorithms can track the varying radio condition and maintainhigh cell throughput. As one UE switches to another cell at t = 10 s, the cell

Page 64: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

48 CHAPTER 4. EXPERIMENTS AND RESULTS

Figure 4.8: Sample of IP packet delay compared with BBR and DCTCP withL4S

throughput drops immediately. All tested algorithms can probe the availablebandwidth for the rest of the active users in the cell, and the cell throughputincreases from approximately 25 Mbps to 32 Mbps after the handover.

The system performance of the algorithms is also evaluated. Figure 4.10demonstrates the average TCP throughput for a di�erent number of active usersin the cell. As the number of active users grows over the time, all the tested al-gorithms react and adapt the sending rate to a lower value. Specifically, LSTMcan achieve slightly higher TCP throughput among the algorithms, while MLPhas the lowest average TCP throughput among the algorithms. Both BBR andDCTCP with L4S result in almost the same average TCP throughput. Whenthe number of active users in the system is 15, we can see that the resultingaverage TCP throughput of LSTM increases by 16% compared with BBR andDCTCP with L4S.

Figure 4.11 is the cumulative distributive function for the user delay. Inmobile networks due to the high load, the latency increases as the number ofactive users in the system increases. MLP has the highest latency due to thehigh prediction error. MLP tend to overestimate the available bandwidth and

Page 65: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 49

Figure 4.9: Sample of cell throughput compared with BBR and DCTCP withL4S

as a result, the delay of MLP is not stable. 90% of the packets experience la-tency lower than approximately 25 ms when using DCTCP with L4S, while90% of packets experience latency is lower than 75 ms when using BBR. Whenusing LSTM and MLP as the congestion control algorithms, 90% of the pack-ets are faster than 110 ms and 140 ms respectively. In this scenario, both LSTMand MLP algorithms overestimate the available bandwidth and the compensa-tion works to scale down the sending rate. As a result, the delay of LSTM andMLP models is slightly higher than 100 ms.

Figure 4.12 demonstrates the average cell throughput for di�erent userloads. As the number of active users grows from 15 to 25, all tested algo-rithms react to higher average cell throughput. However, when the number ofactive users is 30, the average cell throughput decreases. This is mostly be-cause when the number of active users continuously grows, the interferencelevel is higher due to the high load in the radio system. As a result, the avail-able bandwidth for each user of the radio link is lower. From Figure 4.12, wecan see that LSTM can maintain the highest average cell throughput amongthe algorithms, while MLP is the lowest. DCTCP with L4S maintains the sec-

Page 66: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

50 CHAPTER 4. EXPERIMENTS AND RESULTS

Figure 4.10: Average TCP throughput for di�erent user load

Figure 4.11: Cumulative distributive function of IP packet delay

Page 67: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

CHAPTER 4. EXPERIMENTS AND RESULTS 51

ond highest average cell throughput, and BBR is the third highest. When thenumber of active users in the system is 11, we can see that BBR results in al-most the same average cell throughput as DCTCP with L4S. And the averageTCP throughput of LSTM increases by 16% compared with BBR and DCTCPwith L4S. In conclusion, LSTM is much e�ective in terms of radio resourceexploration for each user.

Figure 4.12: Average cell throughput for di�erent user load

The downlink subbands utilization is presented in Figure 4.13. Generally,all the tested algorithms can utilize more than 95% of the downlink subbands.As the number of active users increases in the system, the downlink subbandsutilization becomes higher. Di�erent from the first scenario, LSTM and BBRcan utilize nearly 100% of downlink subbands. MLP leverages approximately97% of the downlink subbands. As the number of active users grows, DCTCPwith L4S utilize the downlink subbands from 95% to 98.5%.

4.4 Summary

This chapter describes a testing process for the neural network-based conges-tion control algorithms. In this chapter, first the simulation environment andthe simulation scenarios are described. Then, the o�ine performance of the

Page 68: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

52 CHAPTER 4. EXPERIMENTS AND RESULTS

Figure 4.13: Downlink subbands utilization

pre-trained models is demonstrated. The performance of two neural network-based algorithms in two di�erent simulation scenarios is visualized and com-pared with Google BBR and DCTCP with L4S algorithms.

Page 69: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Chapter 5

Conclusions

This chapter states some conclusions based on the entire project. Also, it sug-gests some potential future work.

5.1 Conclusions

This degree project presents two data-driven neural network model, MLP andLSTM, for TCP congestion control. The model is based on the physical layerparameters as well as the system parameters to predict the available bandwidthfor the users in the system so that the sender can send the packet at the estimatedrate to avoid congestion in the network.

In general, LSTM model does not underperform, compared to state-of-the-art congestion control algorithms, BBR and DCTCP with L4S. The givenresults of sample users illustrate that the LSTM algorithm is e�cient in termsof stable sending rate and high link utilization compared with state-of-the-artcongestion control algorithms, BBR and DCTCP with L4S. It is able to es-timate the potential available bandwidth in the future 100 ms. Furthermore,it enables the users to adapt to the dynamically varying radio conditions andis able to make use of actual available capacity. As a result, the average cellthroughput of LSTM is higher than both BBR and DCTCP with L4S. How-ever, its delay is apparently higher than BBR and DCTCP. LSTM is unable toachieve 100% accuracy and has the problem of overestimating the bandwidth.In this project, a simple approach is used to add a correction when the RTTbecomes too high. It keeps the latency around 100 ms, which remains to beoptimized in the future work.

Moreover, MLP underperforms compared to the existed congestion con-trol algorithms, due to its higher prediction error. It tends to overestimate the

53

Page 70: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

54 CHAPTER 5. CONCLUSIONS

bandwidth, introduce higher delay, and increase the number of dropped pack-ets in the network.

Considering the trade-o� between low latency and high throughput, DCTCPwith L4S outperforms the other TCP congestion control algorithms. LSTMdoes not provide any additional performance gains in current settings com-pared to DCTCP with L4S.

5.2 Future Work

There remains a lot of future work in several directions that could be done.It is promising to optimize the performance of LSTM model by combining

LSTM with reinforcement learning. LSTM is responsible for giving predictionbased on the physical layer parameters, while reinforcement learning can bethe control strategy to adjust the sending rate based on the latency. It can bemore flexible to adjust the sending rate and control the delay at a lower level,when the LSTM model overestimates the available bandwidth.

Currently, there is no toolkit for reinforcement learning in this networksimulator. In order to investigate the performance of LSTM with reinforce-ment learning, it is necessary to develop the the framework for integrating thenetwork system simulator and OpenAI Gym.

In the current context, the simulator could also be extended to cover morescenarios. Conducting testing to investigate and evaluate the performance ofthe di�erent TCP variants when there is mixed tra�c in the network, such asa mixture of short and long flows. Moreover, more KPIs could be added, too,so that it allowss a deeper investigation in the cellular networks.

Page 71: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Bibliography

[1] Ericsson, “Ericsson Mobility Report June 2019,” p. 36, 2019. [Online].Available: https://www.ericsson.com/assets/local/mobility-report/documents/2019/ericsson-mobility-report-june-2019.pdf

[2] M. Yao, M. Carrick, M. M. Sohul, V. Marojevic, C. D. Patterson, andJ. H. Reed, “Semidefinite relaxation-based papr-aware precoding formassive mimo-ofdm systems,” IEEE Transactions on Vehicular Tech-nology, vol. 68, no. 3, pp. 2229–2243, 2018.

[3] E. Dahlman, S. Parkvall, and J. Skold, 5G NR: The next generation wire-less access technology. Academic Press, 2018.

[4] J. F. Kurose and K. W. Ross, Computer Networking: A Top-Down Ap-proach, 6th Edition. Pearson, 2013.

[5] J. Huang, F. Qian, Y. Guo, Y. Zhou, Q. Xu, Z. M. Mao, S. Sen, andO. Spatscheck, “An in-depth study of LTE: e�ect of network protocol andapplication behavior on performance,” in ACM SIGCOMM ComputerCommunication Review, vol. 43. ACM, 2013, pp. 363–374.

[6] F. Lu, H. Du, A. Jain, G. M. Voelker, A. C. Snoeren, and A. Terzis,“CQIC: Revisiting cross-layer congestion control for cellular networks,”in Proceedings of the 16th International Workshop on Mobile ComputingSystems and Applications. ACM, 2015, pp. 45–50.

[7] W. Stevens, “Tcp slow start, congestion avoidance,fast retransmit, andfast recovery algorithms,” Internet Request for Comments, vol. RFC2001 (Standard), Jan. 1997. [Online]. Available: https://www.rfc-editor.org/rfc/rfc2001.txt

[8] S. Ha, I. Rhee, and L. Xu, “CUBIC: a new TCP-friendly high-speed TCPvariant,” ACM SIGOPS operating systems review, vol. 42, no. 5, pp. 64–74, 2008.

55

Page 72: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

56 Bibliography

[9] K. Winstein, A. Sivaraman, and H. Balakrishnan, “Stochastic forecastsachieve high throughput and low delay over cellular networks,” in Pre-sented as part of the 10th USENIX Symposium on Networked SystemsDesign and Implementation (NSDI 13), 2013, pp. 459–471.

[10] N. Cardwell, Y. Cheng, C. S. Gunn, S. H. Yeganeh, and V. Jacobson,“BBR: Congestion-Based Congestion Control,” ACM Queue, vol. 14,no. 5, pp. 20–53, 2016.

[11] M. Alizadeh, A. Greenberg, D. Maltz, J. Padhye, P. Pate, B. Prabhakar,S. Sengupta, and M. Sridharan, “Data center tcp (dctcp),” in SIGCOMM2010. ACM, September 2010. [Online]. Available: https://www.microsoft.com/en-us/research/publication/data-center-tcp-dctcp/

[12] K. Ramakrishnan, S. Floyd, and D. Black, “The addition of explicitcongestion notification (ECN) to ip,” Internet Request for Comments,vol. RFC 3168, Sep. 2001. [Online]. Available: https://tools.ietf.org/html/rfc3168

[13] B. Briscoe, K. Schepper, and M. Bagnulo, “Low latency, low loss, scal-able throughput (l4s) internet service: Architecture,” Internet Engineer-ing Task Force, Oct. 2018.

[14] I. Johansson, “L4S in a 4G/5G context,” Jul. 2016. [Online]. Available:https://datatracker.ietf.org/meeting/96/materials/slides-96-l4s-2

[15] Y. LeCun, Y. Bengio, and G. Hinton, “Deep learning,” nature, vol. 521,no. 7553, p. 436, 2015.

[16] “MATLAB - MathWorks.” [Online]. Available: https://www.mathworks.com/products/matlab.html

[17] “pandas: Python data analysis library.” [Online]. Available: https://pandas.pydata.org/

[18] “NumPy — NumPy.” [Online]. Available: https://www.numpy.org/

[19] “Matplotlib: Python plotting — Matplotlib 3.1.0 documentation.”[Online]. Available: https://matplotlib.org/

[20] “scikit-learn: machine learning in Python — scikit-learn 0.21.2documentation.” [Online]. Available: https://scikit-learn.org/stable/

[21] “Keras Documentation.” [Online]. Available: https://keras.io/

Page 73: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Bibliography 57

[22] V. Jacobson and M. J. Karels, “Congestion avoidance and control,” inACM SIGCOMM computer communication review, vol. 18. ACM,1988, pp. 314–329.

[23] M. Allman, V. Paxson, and E. Blanton, “Tcp congestion control,”Internet Request for Comments, vol. RFC 2581 (Standard), Sep. 2009.[Online]. Available: https://tools.ietf.org/html/rfc5681

[24] J. Postel, “Internet protocol,” Internet Request for Comments, vol. RFC791 (Standard), Sep. 1981, updated by RFC 1349. [Online]. Available:http://www.rfc-editor.org/rfc/rfc791.txt

[25] V. Paxson, M. Allman, J. Chu, and M. Sargent, “Computing TCP’sretransmission timer,” Internet Request for Comments, vol. RFC 6298(Standard), june 2011. [Online]. Available: https://tools.ietf.org/html/rfc6298

[26] T. Henderson, S. Floyd, A. Gurtov, and Y. Nishida, “The newrenomodification to tcp’s fast recovery algorithm,” Internet Request forComments, vol. RFC 2012 (Standard), Apr. 2012. [Online]. Available:https://www.rfc-editor.org/rfc/rfc6582.txt

[27] M. Mathis, J. Mahdavi, S. Floyd, and A. Romanow, “Tcp selectiveacknowledgment options,” Internet Request for Comments, vol. RFC2018 (Standard), Oct. 1996. [Online]. Available: https://www.rfc-editor.org/rfc/rfc2018.txt

[28] E. Dahlman, S. Parkvall, and J. Skold, 4G: LTE/LTE-advanced for mo-bile broadband. Academic press, 2013.

[29] “Evolved universal terrestrial radio access (E-UTRA) and evolveduniversal terrestrial radio access network (E-UTRAN); overalldescription; stage 2 (release 15),” 3rd Generation PartnershipProject (3GPP), Technical Specification (TS), Mar. 2019. [On-line]. Available: https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2440

[30] Z. Zhong, I. Hamchaoui, R. Khatoun, and A. Serhrouchni, “Performanceevaluation of CQIC and TCP BBR in mobile network,” in 2018 21st Con-ference on Innovation in Clouds, Internet and Networks and Workshops(ICIN). IEEE, 2018, pp. 1–5.

Page 74: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

58 Bibliography

[31] Y. Timner, J. Pettersson, H. Hannu, M. Wang, and I. Johansson, “Net-work assisted rate adaptation for conversational video over LTE, con-cept and performance evaluation,” in Proceedings of the 2014 ACM SIG-COMM workshop on Capacity sharing workshop. ACM, 2014, pp. 45–50.

[32] “Evolved universal terrestrial radio access (E-UTRA); physi-cal layer procedures (release 15),” 3rd Generation PartnershipProject (3GPP), Technical Specification (TS), Mar. 2019. [On-line]. Available: https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2427

[33] E. Atxutegi, F. Liberal, H. K. Haile, K. J. Grinnemo, A. Brunstrom, andA. Arvidsson, “On the use of TCP BBR in cellular networks,” IEEECommunications Magazine, vol. 56, no. 3, pp. 172–179, Mar. 2018.

[34] “Lte evolved universal terrestrial radio access (e-utra) physical layer- measurements (3gpp ts 36.214 version 9.1.0 release 9),” 3rdGeneration Partnership Project (3GPP), Technical Specification (TS),Apr. 2010. [Online]. Available: https://www.etsi.org/deliver/etsi_ts/136200_136299/136214/09.01.00_60/ts_136214v090100p.pdf

[35] A. P. Iyer, L. E. Li, and I. Stoica, “Automating diagnosis of cellular radioaccess network problems,” in Proceedings of the 23rd Annual Interna-tional Conference on Mobile Computing and Networking. ACM, 2017,pp. 79–87.

[36] C. M. Bishop, Neural networks for pattern recognition. Oxford univer-sity press, 1995.

[37] “Scientific modeling | science.” [Online]. Available: https://www.britannica.com/science/scientific-modeling

[38] I. Goodfellow, Y. Bengio, and A. Courville, Deep learning. MIT press,2016.

[39] D. E. Rumelhart, G. E. Hinton, and R. J. Williams, “Learning inter-nal representations by error propagation,” California Univ San Diego LaJolla Inst for Cognitive Science, Tech. Rep., 1985.

[40] A. Géron, Hands-on machine learning with Scikit-Learn and Tensor-Flow: concepts, tools, and techniques to build intelligent systems. "O’Reilly Media, Inc.", 2017.

Page 75: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

Bibliography 59

[41] F. Girosi, M. Jones, and T. Poggio, “Regularization theory and neuralnetworks architectures,” Neural computation, vol. 7, no. 2, pp. 219–269,1995.

[42] D. Stathakis, “How many hidden layers and nodes?” InternationalJournal of Remote Sensing, vol. 30, no. 8, pp. 2133–2147, Apr.2009. doi: 10.1080/01431160802549278. [Online]. Available: https://www.tandfonline.com/doi/full/10.1080/01431160802549278

[43] D. E. Rumelhart, G. E. Hinton, and R. J. Williams, “Learning represen-tations by back-propagating errors,” Nature, vol. 323, no. 6088, p. 533,1986.

[44] Y. Bengio, P. Simard, P. Frasconi et al., “Learning long-term dependen-cies with gradient descent is di�cult,” IEEE transactions on neural net-works, vol. 5, no. 2, pp. 157–166, 1994.

[45] S. Hochreiter and J. Schmidhuber, “Long short-term memory,” Neuralcomputation, vol. 9, no. 8, pp. 1735–1780, 1997.

[46] C. Olah, “Understanding LSTM Networks,” Aug. 2015. [Online]. Avail-able: https://colah.github.io/posts/2015-08-Understanding-LSTMs/

[47] N. Kartam, I. Flood, and J. H. Garrett, “Artificial neural networks forcivil engineers: fundamentals and applications.” American Society ofCivil Engineers, 1997.

[48] HDF Group, “What is HDF5?” [Online]. Available: https://www.hdfgroup.org/

[49] Keras, “FAQ - Keras Documentation.” [Online]. Available: https://keras.io/getting-started/faq/#how-can-i-save-a-keras-model

[50] “Deeplearning4j–deep learning for java.” [Online]. Available: https://deeplearning4j.org/

[51] “ND4j Overview | Deeplearning4j.” [Online]. Available: https://deeplearning4j.org/docs/latest/nd4j-overview

[52] “Evolved universal terrestrial radio access (e-utra) requirements forsupport of radio resource management (release 16),” 3rd Genera-tion Partnership Project (3GPP), Technical Specification (TS), Mar.2019. [Online]. Available: https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2420

Page 76: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data
Page 77: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data
Page 78: Cross-Layer Congestion Control with Deep Neural Network in ...kth.diva-portal.org/smash/get/diva2:1372622/FULLTEXT01.pdf · congestion occurs when the sender attempts to send data

TRITA-EECS-EX-2019:656

www.kth.se