An Overview of Application Layer Software
The raison d’être of the application layer is to take a simple exchange—for example, a voice or messaging exchange—and transform it into a rich media exchange, as follows: I talk to a friend. The application layer software prompts me to exchange an image file. The application software prompts me to send some simultaneous data (information on the image file). The application layer prompts me to load a simultaneous video exchange. The application software then prompts me to increase the color depth, resolution, or frame rate. I end up spending lots of money.
The software has influenced session persistency. What started off as a short, bursty exchange has become a persistent duplex flow of complex content, separately managed on multiple physical layer channel streams. In our very first chapter, we pointed out how code bandwidth has expanded with each successive cellular generation (see Table 6.1). This has a largely unrecognized but profound effect on network topology. Suppose each handset has 1 million lines of code. For every 1000 subscribers you have 1 trillion lines of code—subscriber-based software code bandwidth. Similarly, if each handset had 10 Gbytes of solid-state or hard disk storage, then every 1000 subscribers represents 10 Tbytes of distributed storage. If each handset is capable of processing 1000 MIPS, then for every 1000 subscribers, there are 1 billion MIPS of distributed processing. As memory and MIPS migrate to the network edge, added value follows. Atraditional AXE switch has 20 million lines of code. In the preceding example, we have said that for every 1000 subscribers we have 1 trillion lines of code. That is 1 trillion lines of code at the edge rather than the center of the network. As code footprint in user equipment increases, the network is increasingly bossed around by the devices accessing the network. The software footprint in the user’s device substantially influences offered traffic (uplink loading), which, in turn, influences offered traffic value (uplink value). We have described how bandwidth burstiness is increasing as we move from constant-rate to variable-rate encoding, and from single to multiple (per user) traffic streams. We can smooth burstiness by buffering, but this absorbs memory bandwidth and introduces delay and delay variability (the latency budget). Application layer software therefore has to be capable of managing these multiple per-user channel streams, which implicitly means the application layer software needs to be good at multitasking. There are different processes influencing bandwidth burstiness. Each individual content stream is variable rate (or, in the case of video encoding, may be variable rate). In addition, content streams are being added to or subtracted from the application layer and radio physical layer multiplex—in other words, static matching (addition or subtraction of channel streams) and dynamic matching (data rates varied on a 10-ms frame-by-frame basis).
228 times read
|