Documente Academic
Documente Profesional
Documente Cultură
However, a network is not made up solely of computers. There’s a whole lot more to the
average network, the sort of behind-the-scene things that one does not immediately
notice. For example, printers may be shared across a network, allowing more than one
machine to gain access to their services. Other types of devices can also be connected to a
network; these devices can provide access to information, or offer services that may be
controlled remotely. Indeed, there’s a growing movement towards connecting non-
computing devices to networks. The most famous example is the soda machine that is
connected to the Internet, so that people can see how many cans of a certain flavor of
drink are available. Indeed, as home networks become simpler to use and more
affordable, we may even see regular household appliances such as telephones, televisions
and home stereo systems connected to local networks or even the Internet. To say that
networks are merely a collection of computers is to limit the range of hardware that can
use a network.
Beyond devices that provide services, there are the devices that keep the network going.
There’s a lot more going on behind the scenes of a network than you might expect.
Depending on the complexity of a network, and its physical architecture, you’ll find other
networking devices like network cards, cables, routers, hubs and gateways that form part
of a typical network. Don’t worry if these terms aren’t familiar – they’re fairly simple to
understand: -
• Routers are machines that act as switches. These machines direct packets
of data to the next hop in their journey across a network.
Such connections carry data between one point in the network and another. This data is
represented as bits of information (either on or off, a zero or a one). Whether through a
physical medium such as a cable, through the air, or using light, this raw data is passed
across different points in the network. We call these points ‘nodes’, and a node could
represent a computer, another type of hardware device such as a printer, or a piece of
networking equipment that relays this information onward to other nodes in the network,
or even to an entirely different network. Of course, for data to be successfully delivered
to a node, there must be a way of identifying individual nodes.
1.2.1 Addressing
Each node in a network is usually represented by an address, just as your home or office
has a street number, suburb, and zip code. The manufacturer of the network interface card
(NIC) installed in such devices, is responsible for ensuring that no two card addresses are
alike, and chooses a suitable addressing scheme. Each card will have this address stored
permanently, so that the address remains fixed – you cannot manually assign these
addresses or modify them, though some operating systems will allow faking of these
addresses in the event of an accidental conflict with another card’s address.
Since there are a wide variety of different networking interface cards, many different
addressing schemes are used, and these can be of various lengths. For example, Ethernet
network cards are assigned a unique 48-bit number to distinguish one card from another.
Usually, a numerical number is assigned to each card, and manufacturers will be
allocated batches of numbers. This must be strictly regulated by industry, of course – two
cards with the same address would cause headaches for network administrators. The
physical address is referred to by many names (some of which are specific to a certain
type of card, while others are more general), including: -
Hardware address
Physical address
Ethernet address
Media Access Control (MAC) address
NIC address
These addresses are used to send information to the right node – if two nodes shared the
same address, they might be competing for the same information and one would
inevitably lose out, or two would receive the same data. Often machines are known by
more than one type of address as well – a network server may have a physical Ethernet
address as well as an IP address that distinguishes it from other hosts on the Internet, or it
may have more than one network card.
Within a local area network, machines can use physical addresses to communicate.
However, since there are many types of these addresses, they aren’t appropriate for inter-
network communication. As you’ll see later in the chapter, the Internet Protocol (IP)
address is used for this purpose.
When a node on the network needs to transmit a packet, there is usually not a direct
connection to the destination node. Instead, intermediary nodes carry packets from one
location to another, and this process is repeated indefinitely until the packet reaches its
destination. Due to network conditions (such as congestion or network failures) packets
may take completely different routes, and sometimes packets may be lost in transit or
arrive out of sequence. This may seem like a chaotic way of communicating, but as you’ll
learn in later chapters, there are ways to guarantee delivery and sequencing. Indeed, the
properties of guaranteed delivery, and sequential order, often aren’t even needed by
applications, as software itself can keep track of lost packets and out-of-sequence data.
Packet transmission and transmission of raw bits of information are very low-level
processes, while most network programming deals with higher-level transmission of data.
Rather than covering the gamut of transmission from raw bytes through to packets, and
then on up to actual program data, it is simpler to split these different types of
communication into layers.
Let’s examine the OSI model, and its various layers. Under the OSI model,
communication is grouped into seven separate layers. Each layer can be referred to by
number, or by a descriptive name. Generally, when network programmers refer to a
particular layer (e.g. Layer n), they are referring to the nth layer of the OSI model. Each
of the seven layers is illustrated in Figure 1-2
Figure 1-2. Seven layers of the OSI Reference Model
Each of the layers is responsible for some form of communication task – but each task is
narrowly defined, and usually relies on the services of one or more layers beneath it. In
some systems, one or more layers may be absent, while in other systems all layers may be
used. Frequently though, only a subset of the seven layers is used by an operating system.
Generally, we as programmers limit ourselves to working with one layer at a time, and
use of many of the layers below are hidden from view.
This section briefly describes some guidelines for hierarchical network design. Following these
simple guidelines will help you design networks that take advantage of the benefits of
hierarchical design.
The first guideline is that you should control the diameter of a hierarchical enterprise network
topology. In most cases, three major layers are sufficient:
Controlling the network diameter provides low and predictable latency. It also helps you
predict routing paths, traffic flows, and capacity requirements. A controlled network diameter
also makes troubleshooting and network documentation easier.
Finally, one other guideline for hierarchical network design is that you should design the
access layer first, followed by the distribution layer, and then finally the core layer. By starting
with the access layer, you can more accurately perform capacity planning for the distribution
and core layers. You can also recognize the optimization techniques you will need for the
distribution and core layers.