75,99 €
Discusses the challenges of bandwidth scarcity due to mobile data explosion and their solutions The rapidly growing popularity of Smartphones and other mobile devices has resulted in an exponential growth of mobile data. There is insufficient radio spectrum to cope with this growing data demand, and upgrading existing networks to meet the demands of mobile data explosion is expensive. Techniques for Surviving the Mobile Data Explosion is about the different approaches that can be used to address the challenges of limited bandwidth. It examines these challenges from the perspective of the mobile network operators, mobile applications developers, and enterprises that deploy mobile applications for their employees. The book provides: * Comprehensive yet easy-to-understand information that is free of technical jargon, complex mathematical notation, and multiple acronyms * Easy-to-understand figures as well as a comprehensive set of references * A cross-disciplinary approach spanning the areas of cellular networks, IP networks, and mobile applications Techniques for Surviving the Mobile Data Explosion is ideal for wireless application developers and mobile network operators.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 361
Veröffentlichungsjahr: 2014
Contents
PREFACE
WHO WILL BENEFIT FROM THIS BOOK?
WHO IS THIS BOOK NOT FOR?
ORGANIZATION OF THE BOOK
ABOUT THE AUTHORS
SECTION 1: INTRODUCTION AND GENERAL OBSERVATIONS
CHAPTER 1: TECHNOLOGIES SUPPORTING MOBILE DATA
1.1 INTRODUCTION
1.2 COMPUTER COMMUNICATION NETWORKS
1.3 IP NETWORKS
1.4 CELLULAR DATA NETWORKS
1.5 MOBILE APPLICATIONS
CHAPTER 2: MOBILE DATA ECOSYSTEM
2.1 INTRODUCTION
2.2 MOBILE DATA ECOSYSTEM
2.3 MOBILE DATA GROWTH
2.4 WHERE IS THE BOTTLENECK?
2.5 IMPACT OF MOBILE DATA GROWTH ON THE ECOSYSTEM
CHAPTER 3: AN OVERVIEW OF TECHNIQUES FOR BANDWIDTH OPTIMIZATION
3.1 INTRODUCTION
3.2 NETWORK MODEL
3.3 OBJECT CACHING
3.4 OBJECT COMPRESSION
3.5 PACKET COMPRESSION
3.6 FLOW SHARING
3.7 CONTENT TRANSFORMATION
3.8 JUST-IN-TIME TRANSMISSION
3.9 RATE CONTROL
3.10 SERVICE DIFFERENTIATION
CHAPTER 4: AN OVERVIEW OF TECHNIQUES FOR COST REDUCTION
4.1 INTRODUCTION
4.2 INFRASTRUCTURE SHARING
4.3 VIRTUALIZATION
4.4 CONSOLIDATION
4.5 IT USAGE IN NETWORKS
SECTION 2: TECHNIQUES FOR MOBILE NETWORK OPERATORS
CHAPTER 5: BANDWIDTH OPTIMIZATION AND COST REDUCTION IN THE RADIO ACCESS NETWORK
5.1 INTRODUCTION
5.2 UPGRADING THE RAN
5.3 LEVERAGING ADDITIONAL BANDWIDTH
5.4 BANDWIDTH MANAGEMENT
5.5 NONTECHNICAL APPROACHES
CHAPTER 6: BANDWIDTH OPTIMIZATION AND COST REDUCTION IN BACKHAUL AND CORE NETWORKS
6.1 OVERVIEW OF BACKHAUL AND CORE NETWORKS
6.2 TECHNOLOGY UPGRADE
6.3 TRAFFIC OFFLOAD
6.4 COMPRESSION
6.5 TRANSFORMATION
6.6 CACHING
6.7 CONSOLIDATION IN CORE NETWORKS
6.8 NETWORK FUNCTION VIRTUALIZATION
6.9 COST REDUCTION OF THE SUPPORTING INFRASTRUCTURE
CHAPTER 7: CONSUMER-ORIENTED DATA MONETIZATION SERVICES
7.1 MOBILE NETWORK OPERATOR DIFFERENTIATORS FOR CONSUMER SERVICES
7.2 SINGLE SIGN-ON SERVICE
7.3 PRIVACY SERVICE
7.4 CONTENT CUSTOMIZATION SERVICES
7.5 LOCATION-BASED SERVICES
7.6 PHONE-BASED COMMERCE
7.7 OTHER SERVICES
CHAPTER 8: ENTERPRISE-ORIENTED DATA MONETIZATION SERVICES
8.1 MODEL FOR MOBILE NETWORK OPERATOR SERVICES TO THE ENTERPRISE
8.2 MOBILE NETWORK OPERATOR DIFFERENTIATORS FOR ENTERPRISE SERVICES
8.3 CACHING AND CONTENT DISTRIBUTION
8.4 MOBILE TRANSFORMATION
8.5 FOG COMPUTING
8.6 LOCATION-BASED SERVICES
8.7 SECURE HYPERVISOR SERVICES
CHAPTER 9: APPLICATION SERVICE PROVIDER-ORIENTED DATA MONETIZATION SERVICES
9.1 MOBILE NETWORK OPERATOR DIFFERENTIATORS FOR APPLICATION SERVICE PROVIDERS
9.2 CACHING AND CONTENT DISTRIBUTION
9.3 FOG COMPUTING
9.4 INFORMATION AGGREGATION
9.5 INFORMATION AUGMENTATION
9.6 HISTORICAL INFORMATION-BASED PLANNING
SECTION 3: TECHNIQUES FOR ENTERPRISES AND APPLICATION DEVELOPERS
CHAPTER 10: AN INTRODUCTION TO MOBILE APPLICATIONS
10.1 ANATOMY OF MOBILE APPLICATIONS
10.2 TYPES OF MOBILE APPLICATIONS
10.3 DEVELOPING FOR MULTIPLE PLATFORMS
10.4 OPERATING SYSTEM VERSION MANAGEMENT
10.5 LIMITED RESOURCES
10.6 GENERAL APPLICATION DEVELOPMENT CONSIDERATIONS
CHAPTER 11: POWER EFFICIENCY FOR MOBILE APPLICATIONS
11.1 MODEL FOR POWER CONSUMPTION
11.2 DUTY CYCLING
11.3 POWER MODE MANAGEMENT
11.4 COMMUNICATION AND COMPUTATION CLUSTERING
11.5 EFFICIENT RESOURCE USAGE
11.6 BEST PRACTICES FOR APPLICATION POWER EFFICIENCY
CHAPTER 12: BANDWIDTH EFFICIENCY FOR MOBILE APPLICATIONS
12.1 PRELOADING
12.2 COMMUNICATION CLUSTERING
12.3 CONTEXT-AWARE COMMUNICATION
12.4 DISCONNECTED OPERATION
12.5 CACHING
12.6 COMPRESSION
12.7 CONTROL TRAFFIC IMPLICATIONS
12.8 BEST PRACTICES FOR BANDWIDTH EFFICIENCY
CHAPTER 13: MOBILE DATA ISSUES FOR THE ENTERPRISE
13.1 MOBILE-RELATED ISSUES FOR THE ENTERPRISE
13.2 SECURITY ISSUES
13.3 BACKWARD COMPATIBILITY
13.4 INFRASTRUCTURE ISSUES
CHAPTER 14: RELATED TOPICS
14.1 MACHINE-TO-MACHINE COMMUNICATIONS
14.2 INTERNET OF THINGS
14.3 PARTICIPATORY SENSING
14.4 MOBILE TRANSFORMATION OF BUSINESS
14.5 SOFTWARE-DEFINED NETWORKS
14.6 MOBILE FIRST PHILOSOPHY
14.7 NETWORK ANALYTICS
14.8 CONCLUSIONS
REFERENCES
INDEX
IEEE Press
445 Hoes Lane
Piscataway, NJ 08854
IEEE Press Editorial Board
Tariq Samad, Editor in Chief
George W. Arnold
Mary Lanzerotti
Linda Shafer
Dmitry Goldgof
Pui-In MakMeng
Chu Zhou
Ekram Hossain
Ray Perez
George Zobrist
Kenneth Moore, Director of IEEE Book and Information Services (BIS)
Technical Reviewers
Hyunseok Chang, Alcatel-Lucent
Shahrokh Daijavad, IBM
Eyuphan Bulut, Cisco Systems
Copyright © 2014 by The Institute of Electrical and Electronics Engineers, Inc.
Published by John Wiley & Sons, Inc., Hoboken, New Jersey. All rights reserved
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750–8400, fax (978) 750–4470, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748–6011, fax (201) 748–6008, or online at http://www.wiley.com/go/permission.
Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.
For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762–2974, outside the United States at (317) 572–3993 or fax (317) 572–4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com.
Library of Congress Cataloging-in-Publication Data:
Verma, Dinesh C. Techniques for surviving the mobile data explosion / Dinesh Chandra Verma, Paridhi Verma. pages cm Includes bibliographical references.
ISBN 978-1-118-29057-6 (pbk.)1. Mobile computing. I. Verma, Paridhi. II. Title. QA76.59.V47 2014 004.167–dc23
2013033685
Dedicated to our wonderful children Archit and Riya.Thanks to our parents for their love, endless support, and encouragement.
Mobile devices have transformed the way we conduct business and lead our lives. Not only are we able to have a phone conversation with others using a Smartphone, we are able to check our e-mail, read a book, make a purchase, book airline tickets, snap a picture, connect with old friends, and play games using a device that we can carry with us anytime anywhere. The resulting transformations in society and our personal lives are apparent to all.
Despite all the wonderful capabilities offered by mobile devices, there is a significant hurdle that can easily turn into a showstopper preventing us from fully attaining the benefits possible from them. The amount of bandwidth available for communication using mobile devices is limited. In one part of the network, namely, the air interface, the bandwidth limitations are due to physical laws and government regulations. In other portions of the network, for example, the cellular backhaul, the bandwidth limitations are due to business reasons and the complex ecosystem of mobile data and applications. As mobile applications continue to become more popular, approaches to deal with the resulting mobile data growth will be needed by operators of mobile networks, developers of mobile applications, and enterprises, who are all increasingly relying on mobile applications.
Mobile data growth is a problem that many people are aware of, but it is hard to find many solutions that address that problem. The problem is especially hard to solve because it spans three complex and sophisticated technical fields, the field of cellular networks, the field of TCP/IP-based data networks, and the field of mobile application development. Addressing the challenges of mobile data growth requires looking across all three fields, which is not always easy for experts in one individual area. This book tries to span these three fields and provides sufficient details for an expert in one field to address the challenges involved in the other two fields.
This book is about the different approaches that can be used to address the challenges of limited bandwidth available to mobile applications by different members of the mobile data ecosystem. The mobile data ecosystem consists of many different constituencies, including the mobile network operators, the developer of mobile applications, and the enterprises that deploy mobile applications for their employees. This book takes the perspectives of each of the different constituencies in the mobile data ecosystem, examines the challenges they will encounter due to the growth of mobile data, and enumerates the various approaches that are available to them to address those challenges.
This book is intended for executives, technology leaders, graduate students, network practitioners, application developers, and system architects who are interested in mobile data or mobile applications. If you are an executive or technology leader for a mobile network operator, a company that develops a mobile application, or an enterprise that uses mobile applications, this book will be useful for you to get an understanding of the challenges associated with mobile data communications. This book provides a holistic overview of the challenges associated with mobile data communication. The description is technical yet generic enough to provide a good summary of the different options available for dealing with mobile data explosion.
If you are a network engineer, network architect, or network strategist working for a mobile network operator, you will find this book to be of interest. It will provide you a summary of the issues involved when Internet technology intersects with cellular network technology and outline the approaches that are available to address them. The book discusses various approaches that can be used to maximize the amount of bandwidth that can be put through an existing network infrastructure, methods that reduce the cost of operation of the network infrastructure, and some new ways in which the data flowing through the network can be monetized.
If you are a software architect or software developer involved in writing mobile applications, you will find this book to be of interest. You will find an overview of techniques you can use to make your application run better in the presence of constrained resources on the mobile device, including approaches to minimize power consumption and approaches to reduce network bandwidth consumption. You will also find a set of best practices that are compiled from a variety of sources in the technical community.
If you work for a company that makes equipment for mobile network operators, you will find this book to be of interest. This book will provide you with an overview of Internet-based data communications and issues involved in mobile application development. This will also give you a broad overview of techniques you can implement in your products to obtain better bandwidth efficiency and create new services for your customers.
If you are a systems architect or software architect working for an enterprise that is using mobile applications, you will find this book to be of interest. In addition to learning about the ways in which you can make mobile applications power-efficient and bandwidth-efficient, you will find a discussion of the various issues associated with the use of mobile applications in the enterprise. You will also find a summary of various approaches to deal with mobile data growth in networks, a subset of which may be beneficial for you within the enterprise network infrastructure.
If you are a graduate student or academic working in the field of mobile computing or mobile networking, you will find the overview of various techniques that lie at the intersection of cellular networks, IP networks, and mobile applications to be of relevance and interest.
Finally, if you are a practitioner in one of the three technical fields of cellular networks, TCP/IP-based data networks, or mobile application development and are interested in learning about the other two technical fields, you will find this book to be of interest. This book will give you a broad overview of the other two areas and discuss how approaches that cut across all the three different areas can help in addressing the challenge of mobile data growth.
This book covers a broad overview of three distinct technical fields, which also means it does not go very deep into any single technical field. If you are looking for a detailed overview of one of the technical fields, this book is not for you. The book covers only a broad perspective of each field, which is just sufficient to understand the challenges of mobile data growth and approaches to address them.
If you are looking for techniques to develop mobile applications using a specific operating system or specific device, this book is not for you. This book provides an overview of approaches to write efficient applications in a general way and helps you understand the technical foundations behind efficient application development. However, it will not provide you a detailed recipe for applications in any specific environment.
If you are looking for bandwidth optimization products or technology offerings from a specific network equipment manufacturer or any other company, you will not find this book of interest. This book will help you understand the general technical principles that drive various bandwidth optimization products, but it does not examine the products of any specific company.
The material in this book is organized into 14 chapters, which can be roughly divided into three sections. The first section consisting of the first four chapters provides an overview of the three different technical fields that are involved in the challenge of mobile data growth, an overview of the mobile data ecosystem, and a general overview of the techniques for bandwidth optimization and cost reduction. The second section can be viewed as a section geared towards mobile network operators and consists of the next five chapters. It examines different aspects related to bandwidth optimization and services that can help a mobile network operator monetize mobile data. The third section consisting of the next four chapters can be viewed as a section for mobile application developers and enterprise users. These chapters consider approaches to write efficient applications and address issues with mobile application deployment in the enterprise. The final chapter in this book discusses some topics that are relevant to, but not directly related to, the main subject of this book.
Chapter 1 provides a summary of the three technical fields that need to be considered to understand mobile data growth. These three fields are cellular networks, TCP/IP data networks, and mobile application development. This chapter provides a high-level overview of the three technical areas with a brief explanation of their salient features.
Chapter 2 provides an overview of the mobile data ecosystem, describes the different constituencies in the mobile data ecosystem, and discusses the nature of mobile data growth and the impact of that growth on each of the constituents of the ecosystem.
Chapter 3 examines the various approaches that can be used within the network to manage the bandwidth overload problem. The problem is presented in the context of an idealized network environment, and different solutions are presented in the context of that environment. This chapter discusses a variety of network optimization methods, which will reduce the amount of data that needs to be sent over a bottleneck link.
Chapter 4 provides an overview of approaches that can be used within a network to reduce its cost of operation. Techniques discussed in this chapter include infrastructure sharing, application of consolidation technologies like Cloud, and concepts like network function virtualization.
Chapter 5 combines ideas from Chapters 3 and 4 and applies them to the specific case of radio access network. Both technical and nontechnical approaches that can be applicable to radio access networks are considered. Technical approaches include upgrading the network infrastructure and augmenting the network bandwidth, traffic offload, rate control, and service differentiation. Nontechnical approaches include different pricing plans, incentives against bandwidth hogs, and prompting users to switch over to Wi-Fi networks when appropriate.
Chapter 6 combines ideas from Chapters 3 and 4 and applies them to the specific case of radio backhaul network, one portion of the network operated by a mobile network operator. The chapter looks at both technical approaches as well as nontechnical approaches to reduce cost of operations and reduce the bandwidth transferred on this part of the network.
The next three chapters discuss some of the new services that can be used by a mobile network operator to obtain more money from data flowing over its networks. Chapter 7 focuses on new data-oriented services that a mobile network operator can offer to its current subscribers, while Chapter 8 provides an overview of some services that a mobile network operator can offer to enterprises or its business customers. Chapter 9 discusses some of the new services a mobile network operator can offer to application service providers that provide over-the-top services. Although application service providers and mobile network operators often have a competitive relationship, a variety of data-oriented services can be offered by a mobile network operator to application service providers benefiting both of them.
Chapter 10 provides an overview of mobile applications and discusses some of the challenges associated with the development of mobile applications. Some of these challenges are standard software development challenges associated with developing software on a diverse number of platforms, while other challenges are unique to a mobile development environment.
Chapter 11 looks at the issue of power efficiency in mobile applications. Starting from a simple model consisting of three abstractions of resources, resource managers and resource consumers, the chapter examines how resource consumers can operate so as to reduce power consumption of the different resources. The chapter also provides a set of best practices that can help in writing power-efficient applications.
Chapter 12 explores the issue of developing bandwidth-efficient mobile applications. It presents a set of techniques that can be used to make applications more bandwidth efficient and a set of best practices that can help in writing bandwidth-efficient applications.
Chapter 13 examines the issues of mobile device growth and adoption among enterprises. Enterprises face challenges associated with data security, enabling mobile access to existing applications, and mobile device management. This chapter discusses some of those challenges and the various techniques available to the enterprise to address those challenges.
Chapter 14, the final chapter in the book, looks at some of the topics that are related to the issue of mobile data growth, but not directly associated with it. These topics include Machine-2-Machine communications, the Internet of Things, the transformation in business processes that can be brought about using mobile applications, and applications such as participatory sensing.
Dinesh Chandra Verma, Fellow IEEE, is an IBM Fellow and Department Group Manager of the IT & Wireless Convergence area at IBM T J Watson Research Center, Hawthorne, New York. He received his doctorate in Computer Networking from the University of California Berkeley in 1992, bachelors in Computer Science from the Indian Institute of Technology, Kanpur, India, in 1987, and Masters in Management of Technology from Polytechnic University, Brooklyn, NY, in 1998. He has served in various program committees, IEEE technical committees, and editorial boards and has managed international multi-institutional government programs. His research interests include topics in wireless networks, network management, distributed computing, and autonomic systems. He holds over50 U.S. patents related to computer networks and has authored over 100papers and 9 books in the area.Paridhi Vermais a marketing manager at IBM. She has 10 years of experience working at IBM Research as a network and security software engineer where she designed and implemented secure electronic commerce systems. She has several years of experience in developing strategic messaging and client value proposition for different industries working as a marketing and communications manager. She has a Master of Science in Electrical Engineering from NYU Poly and holds a patent and a publication for the Internet emergency alert system she designed while at research. She has also authored several books for children, which can be found at chandabooks.com.
The popularity of mobile devices is growing exponentially, and the number of such devices deployed worldwide is rising rapidly. These devices come in many forms such as Smartphones, Personal Digital Assistants, and tablets. Another important category of mobile devices are laptops where the use of network interfaces that support mobile wireless data, either via cellular data networks or through Wi-Fi, is commonplace.
The increase in number of mobile devices has led to the development of many new applications targeted at both businesses and consumers. The count of such applications runs into several hundreds of thousands for any of the popular mobile device platforms. Some of these applications require very little network data exchange but some, for example, applications which allow a user to watch streaming video on the mobile device can use up a tremendous amount of data in a very short amount of time.
As a result, the amount of data that is sent over the mobile cellular networks keeps on increasing steadily. The amount of data growth in mobile networks is tracked by various organizations. Studies conducted by several companies [1,2] indicate that mobile data growth has approximately been tripling every year since 2009. A significant growth in the data came from the transmission of video on the network, which accounts for more than half of the total mobile data. Furthermore, predictions made by both these studies, as well as other studies, show no signs of slowing down of this trend of mobile data growth.
The bandwidth demands from all of the mobile applications that exist currently and will be developed in the future will likely exceed the network capacity that can be offered by the currently deployed wireless cellular networks. This mismatch in capacity can be handled in a variety of ways, and the different techniques that can be used to solve the capacity mismatch are the subject of this book.
In an ideal world, one would simply upgrade the network infrastructure so that all of the challenges associated with limited bandwidth disappeared. In real life, this simple solution comes with an enormous price tag. There are several constituencies with some vested interest in mobile data communications, for example, mobile device users, mobile network operators, mobile application developers, enterprises using mobile computing applications. Each of these constituencies would like the bulk of cost required for bandwidth upgrade to be borne by some other constituency. The actions to address the capacity mismatch that are within the control of each constituency are also different. An introduction to the various constituencies in the mobile ecosystem and the implications of mobile data growth on each of the constituencies is provided in Chapter 2 of this book.
Approaches that can be used to address mobile data growth have technical complexities in addition to the ecosystem complexities. Mobile data communications are at the intersection of three different, though related, technical fields, namely (i) mobile applications, (ii) Internet, and (iii) cellular networks. Approaches to address mobile data growth need to span three technical areas, which is more complex than any approach that could be addressed within one single technical area.
The relationship and interaction between these three areas can be understood by a reference to Figure 1.1. The figure shows a high-level layout of the communication infrastructure needed for a mobile application that is exchanging data with another computer on the Internet.
FIGURE 1.1 Mobile applications data communication infrastructure.
Mobile applications are software components that run on mobile devices such as a Smartphone or tablet computer. They exchange data with application components running on servers, shown as server software in Figure 1.1. In order to communicate with each other, the mobile application and server software use a set of conventions called a communication protocol. The Hypertext Transport Protocol (HTTP) is an example of a common protocol used in this manner. The information exchanged by this protocol traverses a number of networks between the mobile device and the server. These networks include a cellular network that connects the mobile device wirelessly to the Internet, and the Internet that provides a means to connect the cellular network to the data center where the server may be physically located.
As the figure demonstrates, mobile applications run using communication protocols overlaid on top of Internet protocols (IPs) that are overlaid partially on top of cellular networks. Each of these three technical fields has its own sophisticated set of well-developed technologies and best practices. Two of these technical fields, namely cellular networks and Internet are specific cases of computer communication networks and have some terminology and design principles in common. However, due to historical reasons, the Internet and the cellular networks have each evolved terminology and mechanisms that are very different. Managing the growth of data due to mobile applications requires an approach that can span across each of these three technical fields and take into account the idiosyncrasies and characteristics of each of these fields.
In this introductory chapter, we provide a high level overview of these technology areas, beginning with an overview of data networks, followed by a discussion about the Internet (an instance of a data network) and the cellular networks (another instance of a data network), and the mobile applications protocols.
The basic function of a computer communication network is to enable two or more computers to exchange data with each other. To enable this exchange, the computers need to agree to a set of conventions that they can all understand and agree upon. Such a set of conventions is called a communication protocol. Computer communication networks consist of a set of communication protocols that build upon each other in a layered manner.
In order for two computers that may be in two different continents to communicate, several layers of communication protocols are needed. Let us consider a simple interaction, one that happens when a user types in the address of a website like http://www.chandabooks.com in a web browser on his Smartphone, and another computer sends back some data which is displayed to the user. In order to facilitate this exchange, a protocol called HTTP is used between the Smartphone and the IEEE web server. The protocol defines the formatsin which the requests from the Smartphone to the web server ought to be sent,and how the web server will respond back to it. This protocol is built usingthe assumption that all requests and responses are received by the other party reliably.
On any real network, requests and responses may be lost in transit. In order to not worry about such losses, HTTP protocol is usually layered on top of another protocol called Transmission Control Protocol (TCP). This protocol has conventions that let the other computer know whether data has been received reliably, how to detect if some data was lost and how to retransmit it, and how the receiving computer can put data back in order the sender sent it even if some data was received out of order. Note that HTTP does not have to be tied with TCP. It could run equally well on top of any other protocol that provided reliable in-order communication. Transmission Control Protocol in turn would be layered on another protocol, for example, the IP. The IP itself in turn would be layered on another set of protocols.
Most data networks are designed with several layers on top of each other, each layer consisting of one or more protocols. Classical data networking texts usually begin with an overview of a canonical protocol stack consisting of seven layers. However, the seven layers are rarely implemented in real life, so the canonical protocol stack is only of academic interest. However, terminology from the canonical protocol stack may frequently be encountered in technical networking literature. We will point out that terminology when appropriate in the rest of this chapter. The only point from the seven-layer canonical model that we will mention is that the model starts its numbering from the bottom, so that in the example of HTTP and TCP that we gave, the HTTP would correspond to a layer that is numerically higher than the layer of TCP.
It would be easier to understand modern practical computer communication protocols in terms of four layers that are shown in Figure 1.2. The bottommost layer, marked as LINK/MAC, refers to a protocol that will allow two computers to communicate with each other as long as they are physically connected to each other, for example, if there is a wire connecting them or they are within the range of wireless communication with each other. This protocol would typically correspond to layers one and two of the canonical seven-layer model. The second layer, NETWORK, refers to a protocol that will allow computers that are connected indirectly via a set of one or more networks sharing a LINK/MAC layer with each other. The third layer, TRANSPORT, refers to a protocol that runs end-to-end between the two computers that are communicating across the network and allows information delivery while coping with issues such as reliability of transmission, ensuring information is delivered in sequence, and that different computers needing to communicate do not overwhelm resources in the network. The fourth layer, APPLICATION, covers any other end-to-end protocol that is required to enable communication atop transport.
FIGURE 1.2 Data networking layers.
At the network layer, protocols tend to fall into two major categories, circuit-switched and packet-switched. Circuit-switched protocols owe their heritage to the telephone networks, when in the old days human operators would plug-in connectors at different telephone exchanges to establish a dedicated line between two people making a phone call. In data networks using circuit-switching, a similar mechanism reserves resources for each pair of communicating computers at any intermediaries to create a dedicated communication channel. This method ensures a good quality of service but is relatively inefficient in resource usage. In packet switching, information is carried into discrete information fragments called packets, each packet carrying a header which allows intermediary nodes to send packets to the right receiver. Due to its efficiencies, most data networks today use a packet-switching paradigm even though it may be subject to fluctuations in service quality when too many packets bunch up at a single location in the network. Some network protocols use the concept of virtual circuits where a logical end-to-end circuit is created on top of a packet-switching network, which provides a tradeoff between the characteristics of both paradigms.
In order for two computers to communicate across a data network, the four layers shown in Figure 1.2 would need to be supported in a manner as shown in Figure 1.3. Assume that computer A wants to exchange data with computer B through intervening computers C and D. The information exchange requires that A and B use the same application and transport protocols. Furthermore, all the four computers need to support the same network protocol. The network protocol allows the computers A and D to exchange data with each other even though the intervening computers may be connected using a different set of LINK/MAC technologies. In the example shown in Figure 1.3, each pair of computers A–C, C–D, and D–B are connected with a different type of LINK/MAC layer protocol.
FIGURE 1.3 Data networking example.
FIGURE 1.4 Data network packet structure.
When the computer A wants to send some application level data to computer B, a piece of software responsible for processing the application protocol on computer A will create that application level data. That data is marked as (a) in Figure 1.4. This data will then be passed to a piece of software on computer A responsible for transport layer processing. This software would attach some more information needed for transport protocol functions so that the data to be sent from A to B looks like the structure marked as (b) in Figure 1.4. The information needed for the transport layer is usually added at the front of the application level data and is called the transport header. The application level data is referred to as the payload. The transport header and the transport payload comprise the transport data. The transport data is then passed to a software responsible for network layer processing which attaches a network header making the data look like that of Figure 1.4(c). In this case, the transport data becomes the payload contained in the network data, which consists of a network header and the network payload (transport data). Finally, the LINK/MAC layer-processing software will attach another header making the data look like that of Figure 1.4(d). Some portions of the preceding description may be done in hardware instead of software, but the end result is the same, producing the data format in Figure 1.4(d). This data format is what we will see if one were to take a snapshot of the data flowing from computer A to C.
Let us now examine what will happen to this packet when it reaches computer C. The LINK/MAC layer-processing software (or hardware) will strip off the LINK/MAC header recreating the data as it was in Figure 1.4(c). It will then be processed by the software responsible for the network layer at computer C, which may modify the network header. The structure would then be like that of Figure 1.4(c), but the contents of the network header could be modified and become different. When computer C sends this modified content to computer D, a new LINK/MAC header, this time corresponding to the LINK/MAC-2 protocol is attached to the data. The same sequence of steps is repeated at computer D, resulting in potential modification of network header, and the LINK/MAC header changes between every pair of computers.
The transport data is unchanged as it travels from computer A to B and processed by the transport software at computer B, which will extract the transport payload, that is, the original application data and deliver it to the software responsible for application-level processing at computer B.
The layering structure allows network communication at each layer to remain independent of the protocols used at layers above or below them. This has led to several creative combinations of network protocols to address different communication challenges that can arise in practical networks. Network protocols can be layered in many different ways, for example, an IP packet may be tunneled inside another IP packet to carry it across a network, or an IP packet may be layered on top of HTTP to cross firewall boundaries. The myriad of possible combinations of protocols has given rise to a very large and diverse set of protocol stacks.
Although there have been many types of computer communications-networking technologies, the dominant technology in use today uses a protocol stack built upon IP. The most dominant version of this protocol that is almost universally deployed is IP Version 4, abbreviated usually as IPV4. Although there is a newer version IP Version 6 (IPV6) available in the market-place, it is yet to see significant adoption. The IPV4 protocol is the technical foundation on which the Internet and the World Wide Web (WWW) have been built. Mobile data applications are also usually based on IPV4 technologies. In this book, we will simply use IP to refer to IPV4 protocol, calling out IPV6 explicitly when needed.
FIGURE 1.5 IP hour-glass structure.
IP is a packet-switching network layer protocol which was developed to allow any two computers using the protocol to talk to each other, even if they happen to belong to different networks, that is, managed and administered by different organizations. Its primary purpose is to allow two networks, which may have many internal differences, to be able to exchange data effectively. In terms of the layering structure discussed in the previous section, IP would be a network layer protocol. However, as explained previously, it has been used in various other layers depending on the idiosyncrasies of specific environments.
Applications running on the IP protocol have a distribution of structure which is sometimes defined as the hourglass system, that is, if you draw a diagram of all the different types of protocols that are operational on the Internet, you will get an hourglass shape as shown in Figure 1.5. The IP protocol is at the narrow part of the hourglass. On top of it, there are a few commonly used protocols like TCP and Universal Datagram Protocol (UDP). More protocols are implemented on top of one (or both) of these protocols including the ubiquitous HTTP that defines the WWW implemented over TCP, the Domain Name Service (DNS) that is implemented on both TCP and UDP or Real-time Transfer Protocol (RTP) which is usually implemented over UDP. Above these protocols, more protocols are defined, for example, the Simple Object Access Protocol (SOAP) which defines web services is usually built atop HTTP. Application developers can create their own private protocols on top of any of the available protocols they find suitable for their purpose.
Below the IP layer are another suite of protocols which provide a way to interconnect a small set of computers. A common example is the Wi-Fi protocol, or more technically the IEEE 802.11 series of protocols. Wi-Fi is ubiquitous in homes, hotels, and airports. The Wi-Fi protocol allows a set of machines on a wireless network connected to a common access point to communicate with each other. Ethernet is another common protocol that can connect a set of machines that are connected to an Ethernet switch. Consider the situation where a Wi-Fi access point is connected to an Ethernet switch and thus acts as a bridge between a Wi-Fi network and an Ethernet network. When a computer connected to the Wi-Fi network needs to communicate with a computer that is on the Ethernet network, they both need to use a common protocol that can help them talk to each other. The IP protocol provides this function.
The bottom half of the hourglass shape indicates that a wide variety of communication protocols can be developed within smaller networks that allow a group of computers to talk to each other. The cellular communication protocols provide a similar set of protocols underneath the hourglass of IP.
The Internet consists of all the computers and other devices supporting the IP protocol that are able to talk to each other. It is a collection of several IP-based networks, operated by many different organizations, which are connected to each other at a number of exchange locations or peering points.
In an IP network, each machine has a unique address, a 32-bit identifier in IPV4, which is used to address packets to that particular machine. The different nodes in the network talk to each other to find out the right way to route packets to the correct machine. This information exchange for routing packets happens at a slower rate than packets being generated, and one of the implicit assumptions required for the correct operation of IP networks is that a machine with an IP address does not move around rapidly within the network.
In addition to the addresses, some of the machines in the IP network also have a domain name. The domain name is a hierarchical name made up with human readable characters such as http://www.chandabooks.com. If the domain name of a machine is known, then any computer can determine its IP address using a distributed system called the domain name system. The domain name provides an easier way to identify a server which needs to be accessed by many applications.
Most of the communication in an IP network falls within the paradigm of client server computing. In this paradigm, a server is a machine whose domain name or IP address is well publicized. A client is a machine which initiates communication to the server, usually by looking up the domain name of the server to get its IP address, and then sending the first packet to the server using its IP address. Once the server receives the packet, it responds back to the client and they communicate according to the protocol stack they both have in common. In the specific context of mobile data communication, normally the mobile device is the client, and the other computer it gets data from, for example a website, is the server.
Having an indirection in the domain name of the server and the IP address allows some significant flexibility in communication as well. One can develop schemes that map the same domain name to different IP addresses, for example, to a different address in each of the continents to have clients communicate to servers who are located in the same geographic neighborhood. This flexibility can be very useful to deal with the overload conditions arising due to the growth in data traffic, as explained in subsequent chapters.
One of the assumptions underlying the design of IP networks is that the location of any machine with an address within the network remains static. The manner in which packets are forwarded towards their destination reflects this design choice. There are extensions of IP communication which allow for some mobility of the machines, but despite their availability, IP remains primarily a protocol for networks where machines do not move around.
Cellular networks are also a type of computer communication network, but they evolved with the primary goal of supporting mobile users with wireless connections, very unlike IP networks which were focused on fixed computers. The cellular networks draw their name from the fact that they divide all of the area being serviced into disjoint regions called cells. Each cell is assigned a set of carrier frequencies, a portion of the electromagnetic spectrum that can be used by mobile devices in that cell to communicate with equipment in a tower servicing that cell. The frequencies can be reused in cells that are not adjacent to each other. Thus, a cellular structure allows coverage of a broad area using only a limited set of frequencies.
The tower servicing the cell can either be located in the center of the cell or on the corners of the cells. When the tower is in the center, it will use an antenna that transmits on all directions of it using the allocated frequencies. When the tower is at the edge, it will transmit on one of the allocated frequencies using a directional antenna, that is, an antenna that will transmit signals in a limited direction towards the interior of the cell. In this case, a single cell may be serviced by more than one tower.
Since users can move over from one cell to another, a system for managing hand-offs of users between cells is required in cellular networks. The specific details of how the hand-off happens depend on the communication technology which is used between a user’s mobile device and the tower.
There are many protocols used within cellular networks, and some of the more common ones include General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), CDMA2000, IEEE 802.16 (Wi-Max), Long-Term Evolution (LTE), and LTE-Advanced. Each of these protocols requires a book to describe them properly. In order to not get bogged down in the specifics of these protocols, each of whom are very complex, we will use a simplified description which will apply to all of these protocols in a generic manner.
FIGURE 1.6 Components of a cellular data network.
The basic architecture of all types of cellular networks and the way in which they connect to the Internet can be viewed as consisting of three distinct but separate networks, an access network, a core network, and a service network. The service network will typically connect to the Internet through an IP router. Each of these components is shown in Figure 1.6.
