Shehata, Eman2023-02-162023-02-162022-12https://hdl.handle.net/11299/252508University of Minnesota Ph.D. dissertation. December 2022. Major: Computer Science. Advisor: Zhi-Li Zhang. 1 computer file (PDF); xiii, 136 pages.Recent years have witnessed a rapid increase in video streaming services (e.g., Netflix, YouTube, Amazon Video, ... etc) to meet users' interests as a result of the massive content published by content providers, high-speed Internet, the wide use of social networks, along with the growth in smart mobile devices. Additionally, the recent deployment of commercial 5G in 2019 and its potential for ultra-high bandwidth has enabled a new era for bandwidth-intensive networked applications such as volumetric video streaming. This growth in available content and demand places a significant burden on the Internet infrastructure. In addition to the complex structure of videos as each video is encoded in multiple resolutions, and different bitrate quality levels to support diverse end-user devices and network conditions. Thus, large-scale content providers have resorted to employing one or more content distribution networks (CDNs) to cache video content and handle user requests, as well as resorting to edge computing and machine learning to improve the performance perceived by their end users. Poor performance impacts user engagement, which leads to significant revenue loss for content providers. In this thesis, we discuss crucial research problems to improve the performance of mobile video streaming ecosystems to meet the scalability and user QoE performance requirements. First, we study the performance of intermediate caches in a hierarchical cache network. We show that when cache servers at different layers act independently this leads to caching objects which are evicted before their next request arrives leading to cache under-utilization.To overcome this issue, we proposed "BIG" cache abstraction which deals with distributed cache pieces as if they are "glued" together to form one "virtual" "BIG" cache. Thus, allowing any existing caching strategy to be applied as a single consistent policy for this "BIG" Cache. Consequently, "BIG" cache improves object hit probability, thereby minimizing the origin server load, and network bandwidth. Second, object access patterns are frequently changing due to the frequent changes in object popularity due to its diurnal access pattern, and during its life span. Due to these frequent changes, caching algorithms cannot rely on the locally observed object access patterns for making caching decisions. On the other hand, manually tuning the caching algorithm for each cache server according to the changes in the request access patterns is very expensive and is not scalable. To address this issue, we developed a machine-learning LSTM Encoder-Decoder model for content popularity prediction. Our DEEPCACHE is a self-adaptive caching framework for making end-to-end caching decisions based on the predicted popularity. We show that it manages to increase the number of cache hits for existing caching policies. Third, routing is a central problem to ensure the resiliency of CDNs. Purely distributed routing algorithms such as Bellman-Ford suffer from the "count-to-infinity" problem, whereas Dijkstra's algorithm requires global topology dissemination and route recomputation. Much of the recent literature on resilient routing is resilient to k link/node failures for a constant k (and often placing topological constraints on the graphs), and none of them work under arbitrary link failures. To address this issue, we developed a proactive routing algorithm that ensures the connectivity between any pair of nodes under arbitrary failures without the need for global topology dissemination and route recomputation as in purely distributed routing algorithms. Our algorithm limits the number of nodes involved in the recovery process as well as the number of link reversals, and convergence time. An additional advantage is the ability to utilize multiple paths to send traffic between nodes due to utilizing directed edges between nodes even upon failures. Finally, with the recent deployment of commercial 5G in 2019 and its potential for ultra-high bandwidth, we studied the characteristics of 5G throughput and its impact on video streaming applications. Our findings show that the wild fluctuations in 5G throughput and its dead zones lead to a large stall time while streaming videos. We redesigned video streaming applications to be 5G-Aware taking full advantage of the ultra-high bandwidth and overcoming its varying throughput. Our experiments show that our proposed strategies consistently deliver high video quality close to the theoretical optimal results reducing (if not eliminating) the stall time.en5GCachingMachine-learningMobileRoutingVideo StreamingEnhancing the Performance of Mobile Video Streaming EcosystemsThesis or Dissertation