Getting Wired Into the Internet: A Crash Course on FTP, Gopher, Web and More page 1
Internet Standards and Protocols
Interconnecting the millions of systems on the Internet today would not be possible without a set of standard protocols. Each Internet standard is described in a document called a request for comment (RFC). RFCs date back to 1969 and are the working notes of the Internet research and development community. Generally, an RFC is a description of a protocol, procedure, or service; a status report; or a summary of research. There are approximately 1,600 published RFCs to date.
RFCs are reviewed by the community of Internet users before
they become standards. Most of the standard protocols on the
Internet got started as RFCs. They are considered public domain
documents, with a few exceptions, and are available online from
several repositories. RFCs are numbered sequentially. Once given
a number they're never revised; new versions of the documents are
issued instead. More information on RFCs and the Inter-net
protocol standards process can be found in RFC 1310. Later on,
I'll show you how to find RFCs on the Internet. 
TCP/IP (Transmission Control Protocol/Internet Protocol)one of the suite of protocols proposed in RFC 1310combines a number of different protocols across several network layers. Traditionally, networks are defined in layers that allow for the separation of functionality. It is easiest to view these layers as the sequence of steps a data packet follows as it makes its way from one computer in the network to another. For this article TCP/IP is best represented as a four-layer system (see Figure 1 right).
Between each layer there is generally an API or convention for interpreting messages, or packets, as they pass between layers. Under Windows, you write to the Windows Sockets API, which is shown in Figure 1 even though it's not part of the TCP/IP protocol suite. Using the Windows Sockets API frees you from having to worry about all the layers beneath you, including how TCP packets are passed through IP and then on to the network card in the link layer. Windows Sockets allows applications written to it to run over different vendors' TCP/IP implementations. For more on Windows Sockets, see Plug into Serious Network Programming with the Windows Sockets API, MSJ (July 1993).
The link layer is most often associated with the device driver or the network card interface. The primary role of the link layer is to determine how to get data packets onto the physical network. Sometimes this includes interfacing with a traditional network card such as Ethernet, and other times this includes interfacing with serial lines, such as a modem. Two important link layer protocols are SLIP (Serial Line Internet Protocol) and PPP (Point-to-Point Protocol). Both of these allow two machines to connect to the Internet using TCP/IP protocols, but over a standard dial-up phone line and modem instead of a nonpermanent network medium like Internet.
The network layer has the primary responsibility for moving packets around the network. In the TCP/IP suite, the protocol that defines this behavior is the Internet Protocol, or IP. Since this is the layer that's concerned with routing information packets around the Internet, it's where unique Internet addresses become important. Before we look at the transport layer, let's look at just how network addresses are created on the Internet.
|
Internet
Addresses Most of you have probably seen an Internet electronic mail address before. For example barney@microsoft.com is an email address of the user barney on the Internet system microsoft.com. Although friendly system names like microsoft.com (called domain names in the Internet) are great for people, they do not work so well for network traffic where routers need to move packets efficiently to the appropriate network. For this reason, each host on the Internet must have a unique 32-bit address, commonly refered to as an IP address. Each host must have a globally unique IP address, though not necessarily a domain name. To make the look-up and routing of packets more efficient, this address is a structured 32-bit field divided into four numeric fields. Each field must be a number less than 256 and is separated by periods. For example, the Microsoft ftp server is ftp.microsoft.com, which has a unique address of 198.105.232.1. To translate these 32-bit unfriendly names into domain names, the Internet uses the DNS (domain name system). The DNS is essentially a distributed static database that maintains a mapping of domain names to IP addresses specified by network administrators. The DNS organizes the names of hosts in a hierarchical fashion, much like a file system. The top names in the hierarchy are called top-level domains, and include the classifications that you are familiar with in the U.S. along with two-letter country codes for the rest of the world (see Figure 2). The second-level domain (microsoft in the example) is the portion of the domain name administered by the Internet Network Information Center (InterNIC). The remainder of the domain name is administered by the network administrator of the subnetwork and is often broken up into additional zones to ease administration. The administrator is also responsible for setting up name servers to handle requests for resolving domain names to addresses for that zone. The specification of the DNS protocol can be found in RFCs 1034 and 1035.
|
The Transport Layer
Returning to the protocol layers, the transport layer is responsible for regulating the flow of data between networked machines running IP. In the TCP/IP suite, two different protocols are used in the transport layer. One is TCP, and the other is the User Datagram Protocol, or UDP. TCP is a connection-oriented protocol designed to tolerate an unreliable link between the two machines. Originally, the Internet used a protocol that assumed a reliable connection. As DARPANET began to include remote hosts and use a variety of link layers, it became clear that this could no longer be assumed. TCP basically takes a user message of any length, breaks it up into pieces less than 64KB, and passes them onto the network layer for routing and delivery. To guarantee correct delivery, TCP uses acknowledgment messages, understands timeout delays, and uses checksums. Because TCP does all of this work, the application layer can just assume that data it wishes to send to another machine will make it through correctly. Most applications use TCP for this reason.
At the other end of the reliability spectrum is UDP. UDP provides a simple interface for applications to send user data, called datagrams, through the network. Unlike TCP, UDP does not guarantee that the information will make it to the other machine on the network. Thus, applications using UDP must include their own code to ensure reliability.
Next | Previous | Return to Introduction | Return to Reprints Page