[System|Toolbox] Tools
for the Art
of System
Administration
HOME STAFF FAQ ADVERTISE LEGAL
Introduction to Networking, Part 2: Protocols and Applications
Chris Campbell
Monday October 29, 2001 08:20 PM
Some of our newbie readers have asked for some direction on setting up their first network, so we dusted off this introduction to networking. Enjoy part 2.

There is an ocean of protocols in the networking world. However, the growing popularity of the Internet has made many of the proprietary protocols dry up. There are still some that remain, such as Novell's IPX/SPX or Windows' NetBEUI, but both Microsoft and Novell have, with the latest incarnations of their networking schemes, adopted the Internet protocol, TCP/IP as their standard. Linux, like Unix before it, supports TCP/IP inherently as it was developed on the platform. To this end, the protocol of focus in this article will be TCP/IP. Incidentally, it is also the protocol with the most applications written specifically for it.

With the launch of Sputnik by the Russians in 1956, the United States government decided that it would be prudent to remain significantly more technologically advanced than their enemies. The Defense Advanced Research Project Agency (DARPA) was formed and embarked on creating a re-routable network impervious to nuclear attack. Called ARPAnet, it grew slowly for years and was scheduled to be abandoned for a newer network in the early 1980's. The National Science Foundation stepped in to take over administration and the Internet was born. Over a decade passed before it became the easy babysitter and corporate advertising mainstay that it is today. Its standards had been set. The standard protocol, of course, became TCP/IP.

TCP/IP Addresses

Pretty straightforward in configuration, each device on a TCP/IP network has an IP address. This is 32 bit value, typically broken into four eight-bit parts. So, a converted address would be like:

TCP/IP Address

Binary

1.1.1.1

00000001.00000001.00000001.00000001

255.255.255.255

11111111.11111111.11111111.11111111

As illustrated above, 255 is the highest number possible in the 8 bit binary field. This would mean that the entire number of possible IP addresses would be 2 ^ 32 (2 raised to the 32nd power) or 4294967296. A fair amount of these addresses are reserved, or like in the case of any 255 valued field, reserved for subnet masking, a concept we will discuss shortly. There are still 4 billion addresses left! That seems impressive until you realize that there is actually a bit of a shortage of IP addresses. A new version of the schema will shortly be implemented (IPv6).

Subnet Masking

As mentioned, each device has an IP address, and that address is similar to the other devices on its local network. With TCP/IP the networks are segmented by the use of subnet masks. Basically, the computer is told to consider local anything not covered by a bit in the subnet mask. For instance, a local device:

TCP/IP Address

Binary

192.168.1.121

11000000.10101000.00000001.1111001

Could be set with a subnet mask:

Subnet Mask

Binary

255.255.0.0

11111111.11111111.00000000.00000000

The computer would mask out any bits covered in the subnet mask:

Local Network

Binary

X.X.1.121

XXXXXXXX.XXXXXXXX.00000001.1111001

So any device address in the range on 192.168.1.X to 192.168.254.X would be considered a local address. By far the most common subnet mask, due no doubt to the scarcity of addresses, is 255.255.255.0. A 128 in the last 8 bit field (octet) is increasingly common also.

Subnet Mask

Binary

255.255.255.0

11111111.11111111.11111111.00000000

255.255.255.128

11111111.11111111.11111111.10000000

When a device such as a router is configured with network information, such as a subnet mask, it regards anything in the remainder of the mask's open fields as internal and all other addresses to be external. When a machine is then configured to point to that router as its default gateway or "next hop" router, the machine should be able to be linked to all networks on either side of the router.

Setting up the simple network:

In Linux, TCP/IP configuration is fairly simple and there are numerous ways to do it. Most Linux distributions come with configuration tools such as linuxconf. This can be executed by going to a command line and typing:

linuxconf

This should bring up a GUI type interface. The IP address may be entered here by clicking "Basic Host Information" and typing and IP address and subnet mask into the appropriately marked fields. It is also crucial to select the adapter, which should be "eth0" if there is only one NIC in the machine.

For the intention of a test or non-internet network (LAN), it is best to use reserved IP addresses, that is, IP addresses which will not be resident addresses on the Internet. The most common address sets used for this are:

IP Network Range

Typical Subnet Mask

192.168.1.X

255.255.0.0

10.10.10.X

255.255.255.0

All devices must have different IP addresses. So, using the 192.168.1.X series, assign the IP address of 192.168.1.1 to the first machine, 192.168.1.2 to the second machine and so on. Subnet mask must remain consistent throughout the network.

It is entirely likely that linuxconf is not included with the version of Linux that you may have, so IP addresses may be set manually from command line:

ifconfig eth0 {IPaddress} netmask {subnetmask}

So, for instance, for the first device in the 192.168.1.X network, the following would be typed:

ifconfig eth0 192.168.1.1 netmask 255.255.0.0

The ifconfig command will set the TCP/IP settings for the time being, but these settings would need to be reset upon reboot. So, on manyt systems, it is possible to set the configuration at boot-up by editing:

/etc/rc.d/rc.inet1

Here the ifconfig commands can be re-issued at boot-up. Note however, that there are many different ways that the boot-time configuration may be handled, and generally it is advised to use linuxconf for this configuration when available.

Applications

Applications are programs running that utilize a networking protocol. Applications are commonly things such as e-mail and Web browsers.. These applications were written specifically for TCP/IP and may be utilized if the proper server software is installed.

As mentioned before every device on a TCP/IP network gets a separate and different TCP/IP address, and every network is segmented via subnet masks. This can be illustrated if one were to look at the network like a city. Subnet masks could be seen as mail delivery areas, and each TCP/IP address could be seen as a postal address on an apartment building. Now imagine applications as being the apartments within the building. Data (or in the proverbial neighborhood, postage) will come to the correct building as long as it has the correct address (IP), but how does it find the actual application (or tenant) that it is intended for? This is done in TCP/IP by designating ports. Each application runs on a designated port so that any data for it knows where to go. Some of the more common are:

Port Number

Service

21

FTP

 

 

23

Telnet

 

 

25

SMTP (Email)

80

HTTP (www)

And so on. A listing of ports may be found in /etc/services.

Testing:

With the IP addresses in place and the machines physically linked together, communication can be tested by either attempting to access a service such as ftp:

ftp {IPaddress of other machine on network}

or telnet

telnet {IPaddress of other machine on network)

These services may be running, but nothing guarantees that. So in order to test communications, there is another service specifically there. This is called ping and may be used to test communication by typing:

ping {IPaddress of other machine on network}

This will send a series of test packets. If you get no response, then something has been misconfigured. Re-review these two articles step-by-step and try again.

If the network is functional, you should get a stream of messages similar to:

Reply from 192.168.1.2: bytes=32 time<10ms TTL=128

If successful, the reply message will continue to repeat. Press CTRL-C to stop the messages. Congratulations! You have successfully created a network! You've taken your first step to a bigger world.

Sections
   Comments
   History

Toolboxes
Windows
Unix
Novell
Linux
OSX
Networking
General
Virtualization
Operations Management

Submit
   Comment
   Article
   Tool
   Link

Comment? - Or do you think this article blows chunks and you could write a better one in your sleep? Then do it!
View Comment Page

Copyright © 2004, The Binary Freedom Project, LLC.