TCP/IP basics |
Let me try to give you a short (it will not be very short) and
simple introduction to TCP/IP. I will try to keep it as simple as possible (it
may to be too simple for some of you, but if you need all the TCP/IP details,
you need to go to your local bookstore and buy on of these books with 1000+
pages on TCP/IP). I will also not bother you with the history of TCP/IP and the
Internet, unless
required for the understanding of the setup.
IP-address:
Each Ethernet
board worldwide has a unique Ethernet-address, it is a 48 bit number (the first
24 bits indicate the manufacturer, the last 24 bits are a unique number for each
Ethernet board/controller-chip assigned by the manufacturer).
When
systems on a local area network ("LAN") are configured with NetBEUI or IPX/SPX
protocol, they use these hardware-addresses to identify each other, so there is
no need to define manually a network address.
But TCP/IP was designed as a
Wide-area-network ("WAN"), able to continue to function, even if part of the network was not
operating ( damaged or destroyed).
TCP/IP uses IP-addresses, which are
32-bit numbers. To make it easier to memorize such IP-addresses, they are
usually expressed as 4 8-bit numbers (example: 192.168.10.1), where each of the
4 numbers is within the range of '0' to '255' (there are restriction on using
'0' and '255', avoid using them.).
When setting up a small private network,
you are free to use ANY IP-address, however, when you are connected to a company
network, you need to ask the Network-administrator to assign you an IP-address.
And if you are connected to the Internet, your ISP (Internet Service Provider) will assign an
IP-address to you.
Even if a network is NOT connected to the Internet, it has
become custom to use on private networks a range of IP-addresses, which are
reserved for private networks (that makes it later possible to connect your
private network to the Internet without having to re-configure everything). The
reserved IP-address is: 192.168.x.y, where x=same number
on all systems and y=different/unique number on all systems.
A small network
of 3 systems would use:
You configure this IP-address in the properties of the
TCP/IP-protocol:
(For now, simply enter as 'Subnet Mask" 255.255.255.0, it will
be explained later in this document)
That's it, if you just like to connect
systems on a small network, the network should work and you can test the
Connection using the TCP/IP ping.
On a small
network, you can still memorize the IP-addresses used, but if your network grows
to 50+ systems, it becomes a serious management job. But TCP/IP offers some help
by allowing to configure it to:
"obtain an IP address automatically":
To be able to make this automatic assignment, there needs to be
now on the network a database, keeping track of possible IP-addresses and to
whom these addresses have been assigned:
DHCP
(Dynamic Host
Configuration Protocol)
On
bootup, the system sends out a call on the network to find a DHCP-server, which
assigns an IP-address to such a system. The IP-addresses are usually assigned
NOT permanently, but for a specific time (could be days, weeks, months or on
Internet-connections just for the ONE connection). If the system contacts the
DHCP-server again during this time, the 'lease' on the IP-address is extended.
But if you come back from a long vacation, your 'lease' of the IP-address may
have expired, that IP-address may have been assigned now to somebody else, and
you/your computer get now assigned a new IP-address.
Windows95 itself does
NOT include any DHCP-server, you need to connect to a Windows NT (or similar
class) server , which is configured as DHCP-server.
![]() Microsoft supplies now with Windows98 a feature for IP-Auto-Confuguration without a DHCP-server on the network. |
Looks simple until now ? Actually there is already a lot
more 'hidden' actions:
The systems have IP-addresses, but Ethernet-boards
ONLY know their Ethernet-address, so as soon as a TCP/IP configured system is
switched on, it is advertising its presence onto the network:" Hey, I am
alive, my Ethernet address is '08000b 0a0238' and my IP-address is
'192.168.10.2' ". , and each TCP/IP system on the network builds up a table
with all this information, which is usually checked/verified in time-intervals
of 15 min.
If your system needs now to communicate with a station, for
which it does NOT have an entry in its table of
IP/Ethernet-Addresses, it sends out a search-message to everybody ("Broadcast-Message") like: " Hey, I like to
communicate with the IP-address '192.168.10.4', but I do NOT know your
Ethernet-Address. Please, identify yourself". This causes the system with
the requested IP-address to send out its advertising again.
These
processes are called ARP
(Address Resolution Protocol)
and RARP (Reversed Address
Resolution Protocol).
This ARP/RARP
works fine on a local-area-network (on an Ethernet network), but will NOT work
for Internet communications, because:
- the Database of
Ethernet-to-IP-address would need to have 10+ Million entries
- the Internet
would only be busy with ARP/RARP.
Gateway/Router:
To connect a TCP/IP local-area-network to another TCP/IP
LAN (which could be the complete Internet), you need now a device called :
Gateway or Router
You need to
tell Windows95 about the Gateway in the TCP/IP-properties:
Now, also the 'Subnet-Mask', which is
usually '255.255.255.0', becomes important: if you now like to connect to
207.68.137.53 (which is the Website of Microsoft), TCP/IP checks your own
IP-address and the IP-address of the destination against the Subnet-mask. Lets
do that comparison on a binary level:
System: | IP/subnet-mask | Binary |
your system | 192.168.10.1 | 11000000 10101000 00001010 00000001 |
Microsoft | 207.68.137.53 | 11001111 01000100 10001001 00110101 |
Subnet-mask | 255.255.255.0 | 11111111 11111111 11111111 00000000 |
TCP/IP compare now the part of the addresses, defined by the
'1's in the subnet-mask: if your system connects to another system on the same
network, that part of the address (the first 24-bits in this example) are the
same, so TCP/IP looks up the Ethernet address in its ARP table and connects
directly to that system.
But if there is a difference in these 24-bits, then
TCP/IP connects to the Gateway (in this example: 192.168.10.20), and it is now
the job of the Gateway to establish somehow the connection to the destination
system (somewhere inside that Internet 'cloud'). The Gateway/Router keeps for
that purpose special tables and passed on the request to the next router, which
itself goes to the next, which itself goes to the next,....., until you reach
the destination.
Each Router/gateway on the network (which could be the
Internet) passes
on the message, until it reaches its destination, and the
reply comes back
the same way (for more details on Routing: Setup TCP/IP
Routing )
The above assumes, that all systems have an IP-address,
which is valid on the Internet ! If you connect via adialup-connection to the Internet, but like to use the connection on multiple systems on a network, you need a Proxy. |
You can check this yourself: open on Win95 a DOS-window and
run the 'tracert'
command (which is installed as part of the TCP/IP protocol).
In my example, I
traced the
router to
"ourworld.compuseve.com":
TRACERT 149.174.213.39
HOSTS/LMHOSTS:
it is difficult
to remember IP-addresses, it is much easier to remember names (and having the
computer lookup the name and find the IP-address). That is the purpose of the
'HOSTS'-file and
'LMHOSTS'-file: Windows95 TCP/IP installs in C:\WINDOWS a file
called 'hosts.sam' and 'lmhosts.sam', rename/copy it to 'hosts'/'lmhosts' and
then use it to define the names:
The formatting of 'hosts' and
'lmhosts' is the same:
IP-address, some spaces,
computername
When to use HOSTS and when to use LMHOSTS
?
That is a confusing subject: having 2 files with a very similar
job.
HOSTS is read by basic
TCP/IP software (ping, ftp,
......)
LMHOSTS is used by the Microsoft
Networking/Client/Workgroup management. If systems are
on the same cable segment, the system broadcast their presence and find each
other automatically, no need to enter anything in LMHOSTS.
However, such
broadcast-packets to NOT get routed. Adding then the IP-address manually in
LMHOSTS makes the system aware about a system on
different segments.
NOTE:
LMHOSTS originates from
"Lan
Manager
HOSTS", a name from the history
of Microsoft networks.
DNS:
Are you
already tired to typ these IP-addresses ? Looks like another item for
automation, and exactly that is DNS :
Domain Name
Service:
it allows to use names instead of
IP-addresses, but you need to configure it as part of the
TCP/IP-properties:
If you now define an address ( like: www.microsoft.com or someserver.com in the picture below) TCP/IP
will make:
1: a call out to a DNS-server, asking for the IP of
someserver.com
2: the DNS server will reply with
the IP-address (in this example 192.5.6.111)
3:
TCP/IP makes now the connection to the requested server
someserver.com, using the IP-address
192.5.6.111.
That's it for a basic course on TCP/IP.
For more info , see :
FTP :
File Transfer Protocol
(Yes, I know, I did not touch
here on 'telnet, and the other TCP/IP goodies, maybe later on another
page....).