The Transmission Control Protocol/Internet Protocol (TCP/IP) has become the common language for the networking world. It is the protocol suite (or stack) that serves as the foundation for the mega-network known as the Internet. Most network operating systems, such as Windows 2000 Server, Novell NetWare 5.x, and the many different flavors of Unix and Linux, now embrace TCP/IP as their default networking protocol.
TCP/IP was developed by the Defense Advanced Research Projects Agency (DARPA). It was originally developed as a wide area networking protocol suite that could be used to maintain communication links between sites even if certain sites became inoperable during a worldwide nuclear war; however, another underlying reason for the creation of the TCP/IP protocol stack was that the Department of Defense needed a protocol stack that could communicate across dissimilar networks. These different types of networks existed because the government uses a bidding system and suddenly found itself with different computer systems at various branches of the Defense Department: the army, navy, and so on. Therefore, TCP/IP is jokingly called the "protocol of low bid."
TCP/IP contains a number of "member" protocols that make up the actual TCP/IP suite. Because the TCP/IP protocol stack was developed before the completion of the OSI reference model, these protocols do not map perfectly to the various layers of the model.
We have been concentrating on the OSI model in our discussion of network protocol stacks, which is the accepted conceptual model for networking today. Figure 5.3 shows some selected protocols from the TCP/IP stack mapped to the OSI layers.
Figure 5.3. The TCP/IP stack mapped to the OSI model.
A number of different protocols make up the TCP/IP stack. There are protocols that handle network access, data transport, and the logical addressing of data packets as they are routed over a network. Table 5.3 provides a brief explanation of some of the key TCP/IP protocols in the stack (including those shown in Figure 5.3).
Table 5.3. TCP/IP Protocol Stack Members
As you can see from Table 5.3, the TCP/IP stack contains protocols that fulfill all the needs for data movement on the network as related to the OSI conceptual model. Protocols such as HTTP and FTP actually provide functions that operate at three layers of the OSI model (Application, Presentation, and Session). Although we refer to FTP as a protocol , it is actually a large protocol that provides a user interface and functions like a mini-application. FTP client software was used a great deal to transfer files on the Internet before HTTP became available.
Another important aspect of TCP/IP is the logical addressing scheme that TCP/IP uses at the Network layer of the OSI model. This logical addressing is provided by the IP protocol. Everyone with access to the Internet has probably run across an IP address. It takes the form of four decimal numbers separated by periods. This format is referred to as dotted decimal .
This dotted decimal notation actually shows us the address in a format we understand (a series of decimal numbers). Computers and other devices on the network actually see this address as a decimal stream of 32 bits. Each of the four parts of the address are referred to as an octet . That is because each octet contains eight bits of information (a bit being either a 1 or 0).
For example, the IP address 18.104.22.168 would be seen by devices on the network as this:
10000010 00000001 00010000 00000001
IP Address Classes
Because IP-based networks can be of varying sizes (very large, large, medium, and small), the architects of the IP addressing system set up different classes of IP addresses to accommodate different sizes of networks. Three classes of addresses for use on networks exist: Class A, B, and C. Here's more information on each class type:
Two other classes of IP addresses should also be mentioned: Class D and Class E. Class D network addresses are used by multicast groups receiving data from a particular application or server service. An example of a multicast use of Class D addresses is Microsoft NetShow, which can broadcast the same content to a group of users at one time. Class E addresses belong to an experimental class, which is not available for use by folks like you and me.
The Subnet Mask
In the Old West, a cowboy was nothing without his horse. Likewise, IP addresses really don't mean anything without an accompanying subnet mask. Devices on a network need to be able to tell what part of the IP address is providing information related to which network the computer with a particular address is on, as opposed to what part of the address actually refers to just the computer or node itself. This is determined by the subnet mask. Devices on the network use the subnet mask to "mask" out the portion of the IP address that refers to the network that the node sits on. If you look back at Figure 5.4, you'll notice that a computer must be configured with both an IP address and the appropriate subnet mask.
Figure 5.4. The IPX/SPX stack mapped to the OSI model.
Each class has a default subnet mask:
Without going into a lengthy and complex explanation of how computers and other devices use a subnet mask to determine certain information from an IP address, the default subnet masks provide some obvious visual clues. If you remember, a Class A network provides more than 16 million node addresses. Also, there are only 126 Class A network addresses available.
If you look at the Class A subnet mask, you will notice that 255 only appears in the first octet. In binary, 255 would be 11111111, meaning that all eight bits are turned on. These "turned on" bits in the subnet mask actually mask out the first octet of any Class A IP address. This tells a computer that the first octet holds the network information.
Notice that all the other octets in the Class A subnet mask are 0this would be 00000000 in binaryand would not mask out the information in the second, third, and fourth octets. This allows these octets to be used for node addresses. Each octet contains eight bits, so in a Class A network, eight bits are used to determine network information, and the other 24 bits are used for node addresses. This is why so many different possibilities are available for node addresses (again, more than 16 million).
In the case of Class B networks, only the third and fourth octets are used for node addresses; this is because the first and second octets are masked out by the subnet mask and provide the network information. With only 16 bits available for node addresses, this means that Class B networks supply fewer node addresses (around 65,000).
Using this logic, you can see why Class C networks supply so few IP addresses (254). This is because only the fourth octet is reserved for node addressing, and the rest of the octets are used for network information. The subnet mask 255.255.255.0 masks out all the octets in a Class C address except for the last octet.