Network Basics

From 118wiki

Jump to: navigation, search

Contents

Network Basics

Functions and Units of Layers

OSI Model
Data unit Layer Function
Host
layers
Data
Message
Stream
Application Network process to application
Presentation Data representation and encryption
Session Interhost communication
Segments Transport End-to-end connections and reliability
Media
layers
Packets Network Path determination and logical addressing (IP)
Frames Data Link Physical addressing (MAC & LLC)
Bits Physical Media, signal and binary transmission

Take a look at the OSI model and you find that the "data units" change from layer to layer. At the physical layer, units are signals, square waves, bits -- the lowest-level and most detailed representation of data. At the link layer, units are bits, bytes, and frames (see data frame). At the network layer, units are packets (in the Internet, the units are called datagrams, and in ATM they are called cells). Moving up to the transport layer, we find segments. At higher layers, the data can be considered as messages or just a stream of bytes.

Why the change of terminology? Just as in physical sciences, where at the lowest level there can be atoms and subatomic particles, then elements, then molecules, then proteins, polymers, alloys, and other more complex structures, we give meaningful names to things as they take on more meaning and more interesting properties. The change in terminology also suggests an idea of what the layered model achieves: each layer "adds value" to what the next lower layer provides. For examples, the physical layer can transform electronic or optical signals into bits, which is closer to what we want. The link layer packs bits into well-structured units called frames, and can even take care of some cases of noise or bit-error detection. This pattern of transforming one type of data or behavior into another is basic to all of computer science. Indeed, the task of every programmer is to create some new thing from existing components and resources.

Addressing

Anyone using a network specifies an "address" for information sent over the network. A network "address" can be:

  • geographic (specifying locations in physical space, country, city, etc.)
  • organizational (specifying a company, a unit of government, and so on)
  • logical (could be arbitrary, could be numeric reference to some hierarchy)

Addressing examples:

  • email, web (usually organizational or logical)
  • postal (geographic; going from smaller to larger in the U.S.)
  • telephone numbers (logical; going from larger area codes to smaller exchange numbers)

Ways of specifying addresses:

  • source addressing (a sequence of directions by sender); this is usually called source routing.
  • destination address (destination has some globally known address)
  • dynamic (an address is assigned on demand by some network service)

Lower-level examples of addresses:

  • LAN physical address, often built-in to network interface boards
  • IP numbers
  • Host names, subdomains, domain names, aliases and group names

Abstract addresses:

  • broadcast address (some way to say that information should be broadcast)
  • multicast address (send to a particular group; could be IRC channel number)
  • constraint-based address (example: "VP of Sales, Acme Corp")

Sharing and Multiplexing

In a perfect world, we might not need to deal with sharing resources in a network. For example, suppose everyone had a unique radio frequency and everyone was in radio range of everyone else. Then we wouldn't need to deal with sharing.

But in our world, users need to share communication channels, either directly or indirectly. Multiplexing is the word used for technical methods of sharing communication channels.

How is multiplexing done?

Multiplexing ties in to the topic of addressing (we'll see more details later).

Switching Networks

Sharing of communication channels can be indirect when data has to be forwarded over several subnetworks. A switching network is composed of endpoints (hosts), switches, and links.

One way to view a switching network is to think of data "flowing" between endpoints, carried by the network, like fluid through pipes. The individual switches relay data and make decisions when there can be multiple ways of getting data to its destination(s).

Issues of switching networks:

  • How to translate an "address" into the way data travels from source to destination(s)?
  • How to share links and other switch resources (memory, processing)?
  • What to do when there is "competition" (called network contention)? Buffer data? Prioritize some data over other data? What is fair?
  • What to do when demand exceeds supply? This can happen when more data is being pumped into a network than the network can carry, like a traffic jam (called network congestion)
Personal tools