Over the years, we humans have developed language as a means of communication to enable understanding of the things we perceive around us. We have developed perceptions into concepts, which we convey to our fellow humans by using language. We have developed a high-level language to convey complex conceptual abstractions.
In the development of any language, a commonality must exist so that the various parties involved in the conversation are able to understand each other. We can think of this as the protocol of the spoken language. For example, the English language follows a structure: We need to include nouns, verbs, and adjectives in the expected locations in our sentences (both spoken and written) so that our intended audience can follow what we are talking about. Imagine someone speaking and using nothing but verbs, such as "walk swam running fell punched." This is an arbitrary collection of words, and without the proper context, you would have no idea what the speaker was talking about. Figure 1.1 shows what can be considered an orderly conversation between humans. The people in the conversation follow a typical process of speaking and/or listening. After a period of processing, responses come from the other party, and the conversation continues.
Figure 1.1. Human communication.
As in human language, communication in computer networking requires some fundamentals. It needs a medium of some sort on which communications can take place. When people communicate, the air around us can be considered the communications medium. (So in a sense, we have been using wireless networking for quite some time.) Using our sense of hearing, we are able to tune inand sometimes tune outwhat others are saying. In a computer network, we use something known as Ethernet, which involves just a wire that looks very much like a telephone wire connected to computers by means of a network interface card (NIC). You can think of a NIC as the computer equivalent of ears. Recently, wireless networking has gained a great deal of popularity. Even in a wireless network, a computer must have a NIC in order to communicate with other computers. Radio frequencies are used in the case of wireless networking to establish communications between computers. Figure 1.2 shows a typical computer network.
Figure 1.2. A typical computer network.
Computers follow a very orderly process when they communicate. For example, if Computer A were sending data, all the other computers would listen and process that data. Just as humans wait for cues in a conversation to let them know that someone has finished speaking, computers act on the electronic equivalent of such cues to determine when another computer has finished communicating.
Computer communications are actually quite a bit more orderly than human communications. In human conversations, people often interrupt the speaker. In computer communications, the rules of data transmission define how each computer should participate in communication and recover if something goes wrong. So we usually don't encounter an interruption in computer communications and when we do, they don't lose their place in the conversation. If only our own conversations were so efficient.
In computer networking, we also need a language of sorts in order to use computers to share and exchange information. This language should follow a certain convention, or protocol, so that the computers involved in the electronic conversation are able to decode information received from other computers. What we are referring to here in fairly broad generalizations is covered by what is known as the Open Systems Interconnect (OSI) computer networking model. (You can do a quick search on Google or any other search engine for OSI to find more detailed information.)
One of the protocols that emerged from the OSI body of work is referred to as Transmission Control Protocol/Internet Protocol (TCP/IP). Today, TCP/IP is the prevalent computer networking protocol. As a matter of fact, the Internet is based on TCP/IP. TCP/IP is a communications protocol that encompasses how computers are addressed as well as how they exchange information in an orderly fashion. Each computer must identify the computer with which it is exchanging information by means of an address. This is very much like dialing a friend's telephone number when you feel like discussing the day's activities. Instead of the well-known 7- or 10-digit telephone numbers, TCP/IP uses what an IP address. For example, 192.168.2.200 uniquely identifies a particular computer on a wired or wireless network. When making a telephone call, you sometimes need to dial an area code when calling someone outside your local calling zone. Similarly, TCP/IP identifies a portion of the address as the network portion. You will see this referred to as the subnet mask. For example, the address 192.168.2.200 contains information about both the network on which it is located and the individual computer to which it refers. The subnet mask for this address might be expressed as 255.255.255.0; to interpret this, wherever you see a 255, you assign that number to the network portion of the address, and wherever you see a 0, you assign that portion of the address to the individual computer. So our example address would be on the 192.168.2 network, which is shared by a number of computers. Each computer would maintain its own individual address on that network, and the computer in our example has the address 200.
Let's continue with the telephone analogy. Many telephones provide a feature whereby you can store a frequently dialed number and reference it by a name. The Internet uses the domain name system (DNS) so that you are not required to remember that 184.108.40.206 (at the time of this writing) is the IP address for one of Microsoft's web servers; all you have to remember is to type www.microsoft.com into the address field of your web browser, and you are connected to the site.