73 lines
3.5 KiB

<sect1 id="Foreward">
It is generally thought that a computer network is a group of two or
more computers that communicate through a transmission medium with their
main purpose being to share resources, both physical and logical,
such as files, devices (such as printers and modems) and services.
Basically, they consist of two fundamental things, devices and
connections. However, even this will not be of any real practical
use since there is no way in which for humans to use the network to receive
or distribute data. Hence, the basic neccessities for a successful and
useful computer network are a communication link, an interface to the
link and software to access the link. Note that for the rest of this
document, the words "link" and "connection" will be loosely synonymous.
So how does the theory of information distribution actually apply in the
real world?
Well, firstly, communication can take a number of forms. Namely, simplex,
half-duplex and duplex. In the case of simplex, this form of communication
is when only one party can only listen and the other can only send. In the
case of half-duplex, each party must be listening or sending but not both.
Finally, duplex or full-duplex communication occurs when both parties can
receive and send information at the same time.
Secondly, a common standard must be agreed to as to who will take precedence.
ie. a "common language" to determine whether there should be priority levels
on messages (in case there is an emergency), what type of error correction
should occur (ie. whether a simple mechanism such as even-parity will suffice
or whether something more sophisticated is required such as CRC-32), what
should happen when an error in communication does occur, etc.... In other
words, a protocol must be formed. In the network setting, a protocol is an
agreement between communicating parties/entities on how communication is to
Thirdly, it has been generally found that the most efficient and least error
prone method by which to achieve these goals is through 'layering'. This idea
will be explained further on in the sections entitled Layering and the
OSI and TCP/IP network layering models but it basically involves abstracting
information starting from the top where humans see it (messages) and breaking
it down (ie. datagrames, packets, frames, cells and finally bits). As the
information is sent up or down further information will be removed or added
respectively to a 'header' which now forms a part of the original data. It is
this header which contains the information necessary for error correction,
message prioritisation, etc....
Further, it is as a direct consequence of this abstraction process
that problems associated with network usage, programming and troubleshooting
can be eased. For example, to the programmer it allows them to be able to add
information to the data being manipulated so that there is a lower chance of data
corruption as it travels through the network, so that transportation of
the data is sped up and also so that there is some flow control. To the
system administrator, it can form a valuable idea as to how to fix any
potential issues. For example, let's say that there seems to be a network
connection problem. The administrator can proceed in one of either two ways.
He can move upwards through the layer hierarchy or downwards. Either way, he is
reducing the problem search space as he proceeds through the stack.