The Abilities and Limitations of TCP/IP
TCP/IP is a communications protocol that fits in the middle of a larger set of mechanisms. TCP/IP provides the linkage between communicating software applications and a physical network that carries messages sent by computers to other computers or devices. In this regard, TCP/IP complements and extends the capability of a physical network, but can't work without that network. Although TCP/IP does blur across some boundaries, it actually fits between the application software, operating system, and network or communications device such as a cable modem or local-area network (LAN). To visualize this, see Figure 1-1.
Figure 1-1 TCP/IP Fits Between the Network and Your Software
Figure 1-1 shows a logical model. Logical models can be confusing due to their nature, but the best way to understand is to think of them as a necessary sequence of events. In this particular model, if you want to communicate across the Internet, you start with your application. Say you are sending a file directly to a friend across the Internet. The first thing you do is pick an application that lets you do that.
Fortunately, TCP/IP contains just such an application: It's called the File Transfer Protocol (FTP). You supply FTP with the necessary information, which is basically your friend's computer address and the file you want to send. FTP needs to engage the operating system to access your computer's physical resources including memory, CPU, and the peripheral device that connects your computer to the physical network.
The preceding example shows how TCP/IP can blur the traditional distinctions between types of software. Even though TCP/IP is just a communications protocol, it also contains numerous utilities or applications, such as FTP. It's part communications protocol and part application software.
On the receiving end, your friend's computer performs the same process, only in reverse. The file comes through the network, where your operating system uses whatever physical resources it must and ensures that TCP/IP gets the file via its own copy of FTP. Figure 1-2 illustrates this process.
Figure 1-2 A Logical Perspective of Using TCP/IP to Transfer a File to a Friend
In its role as intermediary between software and the physical network, TCP/IP provides the rules and mechanisms that enable two or more different machineseven if they are very different machinesto communicate and share information with each other.
TCP/IP's mechanisms are designed to enable communications between any two or more machines connected to a network regardless of the device type, who made them, or their physical proximity to each other. Bridging the gap between dissimilar devices is a phenomenally powerful concept: You have created a mechanism that brings everybody together regardless of where they are or what technologies they use.
As shown in the preceding FTP example, the boundaries between operating system, application software, and communications protocols are blurred quite a bit by TCP/IP. When installed, TCP/IP functions as an extension of the operating system. So seamless is this integration that many people aren't even aware that they are using TCP/IP to communicate!
Even more confusion is added when you remember that TCP/IP contains quite a few simple applications that enable a user to directly do simple tasks like push files through a network or log on to remote computers. Part IV, "User ServicesMaking the Most Use of Your Network," looks more closely at those utilities. Users who are familiar with such utilities might think of TCP/IP as an application. They'd have justification for thinking that way! However, these utilities are just one small piece of the comprehensive set of protocols that you know and love and call TCP/IP.
Economically, too, TCP/IP has been a boon. The concept of an open mechanism that is not owned or controlled by any one commercial organization has opened doors few people could have imagined possible. For example, TCP/IP has become widely accepted around the world simply because it becomes the means by which different manufacturers' products can interoperate with each other. More importantly, TCP/IP broke new ground by pioneering a new method for developing new technologies that anyone could manufacture. Now, entities trying to develop a new communications-based product or technology can simply start with TCP/IP's openly published specifications and focus on adding value based on that preexisting set of capabilities. More importantly, developing products around TCP/IP brings a tremendous base of users who could easily integrate any new products based on that protocol suite.
TCP/IP's Top Five Critical Functions
By now you're probably anxious to get into what TCP/IP can do for you. Some of the applications that rely on TCP/IP (such as web surfing and e-mail) have been discussed, but you have seen how one set of mechanisms can so successfully support a rich and diverse array of applications.
The answer lies in determining the basic underlying capabilities any application requires to communicate. At the risk of sounding like a late-night talk show host, TCP/IP's top five critical functions follow:
Globally Unique AddressesAn addressing system that permits you to uniquely identify any given machine connected to the Internet. This system affords the ability to create literally billions of unique addresses.
PacketMerely having an address for a networked machine isn't enough to permit communication. You also need a mechanism that allows you to send data to, and receive data from, the machine with that address. That mechanism is called a packet. Packets contain all the address information that a TCP/IP network needs to enable two or more devices to talk across a network.
Segmentation and ReassemblyThe ability to chop up application data into manageable pieces called segments is crucial to communicating across a network. These segments are then placed inside a packet for transmission across a network. The machine receiving this stream of packets can extract the segments of data and restore the data to its original form.
ResequencingTCP/IP also enables computers that receive a series of related packets to put them back into the correct order. This ability is important because you can't guarantee that packets will be received in the order they were sent. Networks are made of intelligent and autonomous devices known as routers, which decide where to send each packet. Their decisions can vary based on congestion and failures discovered within the network. The result is that packets are commonly received out of sequence!
Data IntegrityLastly, you can't always assume that what you put on a network will get to its destination intact. For that matter, you can't assume that it will get there at all! Lots of things can go wrong when data is traveling through a network. The result can be garbled data or even packets that get lost or dropped. TCP/IP is smart enough to detect data that was damaged or lost as it traveled through the network. Data that was damaged is discarded and TCP/IP's mechanisms ensure thatwhen appropriatethe damaged or lost block is retransmitted until it is successfully received.
TCP/IP can, of course, do many other things. Thus, this list is not comprehensive. Instead, these five things form the basis for communicating. Other features, including those that are part of TCP/IP and those commercially developed around TCP/IP, build upon this foundation.
What It Can't Do
TCP/IP is not a proverbial silver bullet. It offers tremendous capabilities, but it does have its limitations. Those limitations have more to do with the intended scope of the protocol suite than weaknesses. Please consider all the "can't dos" in this section as being by design rather than indicative of a flawed implementation.
First of all, TCP/IP is not an operating system (OS). An OS is the software that runs on a computer and creates the environment in which other applications can run. The various Windows platforms are examples of operating systems. When installed, TCP/IP becomes an important extension of your computer's operating system, but it does not replace it.
There was a time when some software vendors billed their operating system software as a Network Operating System (NOS), but that term is misleading. It indicates a computer OS that supports a robust ability to communicate. One critical component of that ability was the inclusion of communications protocols, such as TCP/IP. However, bundling a set of communications protocols with an operating system doesn't make those protocols the operating system! As networking ability has become a more integral part of both operating systems and application software, this distinction has fallen by the wayside; consumers began expecting their operating systems to offer a rich networking capability.
TCP/IP also isn't a network! Installing and configuring TCP/IP on your workstation or home computer does not, in and of itself, mean you can use that computer to communicate with other computers or devices. TCP/IP, by itself, is incapable of transmitting or carrying data. Those functions remain in the purview of a physical network such as an Ethernet or a wide-area network (WAN). TCP/IP prepares data received from applications for transmission and provides all the logical mechanisms needed to send and receive data between two devices connected via a physical network.