Basic Concepts, Protocols and Terminology
After reading this chapter, you should:
have a high level appreciation of the basic means by which messages are sent and
received on modern networks;
be familiar with the most important protocols used on networks;
understand the addressing mechanism used on the Internet;
understand the basic principles of client/server programming.
The fundamental purpose of this opening chapter is to introduce the underpinning
network principles and associated terminology with which the reader will need to be
familiar in order to make sense of the later chapters of this topic. The material cov-
ered here is entirely generic (as far as any programming language is concerned) and
it is not until the next chapter that we shall begin to consider how Java may be used
in network programming. If the meaning of any term covered here is not clear when
that term is later encountered in context, the reader should refer back to this chapter
to refresh his/her memory.
It would be very easy to make this chapter considerably larger than it currently
is, simply by including a great deal of dry, technical material that would be unlikely
to be of any practical use to the intended readers of this topic. However, this chapter
is intentionally brief, the author having avoided the inclusion of material that is not
of relevance to the use of Java for network programming. The reader who already
has a sound grasp of network concepts may safely skip this chapter entirely.
Clients, Servers and Peers
The most common categories of network software nowadays are clients and servers .
These two categories have a symbiotic relationship and the term client/server
programming has become very widely used in recent years. It is important to