Introduction to Stream Control Transmission Protocol
1.1 IP Networking Basics
In this section we will first discuss the basic addressing model used in an IP network, that is, how a message is addressed and how it is delivered to the intended receiver. This is essential to an understanding of how the communication parties find and exchange information with each other. Then we will discuss in detail how the endpoints in a communication, as well as the communication relationship itself, are logically defined.
1.1.1 How Messages Are Delivered in an IP Network
1.1.1.1 IP Address and IP Datagram Routing
In an IP network, application programs running on different machines communicate with each other usually by sending and receiving user messages. These user messages are translated into IP datagrams for transport across the IP network. In order to identify each individual machine, the network administrator assigns a unique IP address1 to each of the machines connected to the network. This IP address assignment is instantiated in the machines either via manual configuration or via an automated address-management protocol such as the Dynamic Host Configuration Protocol (DHCP) (Droms 1993).
In many cases the assignment of an IP address to a machine is permanent; that is, the machine's IP address will remain unchanged for a significant period of time. An example of such a case is a server providing Web pages on the Internet; its IP address will stay the same until some rare circumstances occur and the network administrator decides to reconfigure the network and assign a new IP address to the server.
However, there are other occasions when the IP address assigned to a machine may change very frequently. An example of such a case is when, using a modem, you dial up to your Internet service provider from your home PC to set up a PPP2 connection. Your Internet service provider will most likely assign a different IP address each time you dial in. However, once assigned, this IP address will normally stay unchanged for the entire duration of the PPP connection.
When the sender sends a message to the receiver, before the message gets on the network, the communication software inside the sender's machine will pack the message into one or more IP datagrams. The packing process includes the prefixing of a tag, called the IP header, to each IP datagram. The IP header will contain both the sender's machine's and the receiver's machine's IP addresses.
Once an IP datagram leaves the sender's machine and gets onto the network, IP routers, which are essentially computers in the network that are specialized in forwarding IP datagrams, will take over and move the IP datagram toward the receiver machine. This process is called IP routing.
In its simplest form, IP routing requires each involved IP router to decide to which of its neighbors the IP datagram should be forwarded, based on its knowledge of the network topology and the receiver's IP address carried in the IP header of the IP datagram.3 This process continues until an IP router eventually passes the IP datagram to the receiver machine.
1.1.1.2 IP Transport Port
Since there may be other applications waiting for messages on the receiver's machine, there needs to be a way for the communication software at the receiver's machine to ascertain where the message is destined for before it can pass the message to the right receiver application. This need is solved by associating each message-receiving application on the destination machine with a different transport port. This assignment of transport ports is normally governed by the operating system on the machine.
When the sender's communication software packs the message into outbound IP datagrams, in addition to adding the IP header, it also prefixes a transport header. This transport header will contain both the sender's and receiver's transport ports. Once the IP datagrams arrive at the receiver's machine, the communication software there will identify the intended message-receiving application by examining the receiver's port number, which is carried in the transport header of each arrived IP datagram.
In summary, in order to uniquely identify a message receiver in an IP network, we need both an IP address of the machine on which the receiver resides and the transport port assigned to the receiver on the machine. The layered reference model of the IP-based communication application shown in Figure 11 is a convenient way of showing this collaboration. The IP address is used in the IP layer to identify the machine (sometimes also called a communication node in the network) on which the application is running, and the transport port is used in the transport layer to identify the application on the machine.
When the sender's communication software packs the message into outbound IP datagrams, in addition to adding the IP header, it also prefixes a transport header. This transport header will contain both the sender's and receiver's transport ports. Once the IP datagrams arrive at the receiver's machine, the communication software there will identify the intended message-receiving application by examining the receiver's port number, which is carried in the transport header of each arrived IP datagram.
In summary, in order to uniquely identify a message receiver in an IP network, we need both an IP address of the machine on which the receiver resides and the transport port assigned to the receiver on the machine. The layered reference model of the IP-based communication application shown in Figure 11 is a convenient way of showing this collaboration. The IP address is used in the IP layer to identify the machine (sometimes also called a communication node in the net-work) on which the application is running, and the transport port is used in the transport layer to identify the application on the machine.
Figure 11 IP communication application reference modela
Figure 12 shows an example of two communicating applications on different machines in a network. In this example, each machine is attached to the network through its network interface (NI). Each network interface has been assigned a unique IP address by the network administrator. Application 1 on machine A has been assigned port number 100 by its operating system; similarly, application 2 on machine B has been assigned port number 200.
When application 1 sends a message to application 2, the IP datagrams that carry the message will have in their IP headers machine A's address (160.15.82.20) as the sender's IP address, and machine B's address (128.33.6.12) as the receiver's IP address. Similarly, the transport header in each IP datagram will indicate 100 as the sender's port and 200 as the receiver's port.
Conceptually, in a simplified view the IP address and port number form a division of labor that accesses the destination application. The IP address serves as the mechanism to route the IP datagrams through the network to the destination machine.4 The port number serves as a de-multiplexing agent for the destination machine's communication software to use to find the individual receiver application that is to receive the message.
Figure 12 Example of two communicating applications
1.1.2 IP Protocols
In order to manage the complexity of the modern communication systems better, protocol designers have used a layering principle that divides the communication software design into layers. The behaviors and rules of each of the layers are in turn defined in separate protocols.
For the IP network, the two most important communication layers are the IP layer and the transport layer, as shown in Figure 11.
The IP layer provides a basic connectionless datagram delivery service. The transport layer, which is built upon the IP layer and uses the datagram delivery service provided by the IP layer, provides a more sophisticated end-to-end data transportation service to the application.
Currently, two major IP layer protocols, the IPv4 (Postel 1981a) and IPv6 (Deering and Hinden 1998) protocols, are defined by the IETF. IPv4 has been widely deployed in the field and is the backbone of today's global Internet, while the deployment of IPv6 has just started.
At the transport layer, the best-known and most widely deployed protocols are the Transmission Control Protocol (TCP) (Postel 1981b) and the User Datagram Protocol (UDP) (Postel 1980).
1.1.3 IP Multi-homing
In the IP terminology, a communication node or host is called multi-homed if it can be addressed by (and thus "owns") multiple IP addresses.
Multi-homing is defined in technical detail in Braden (1989). But in a simplified view, multi-homing is usually the result of the host machine (where the communication node resides) being installed with either of the following:
Multiple network interface cards, with each assigned a different IP address and/or
A single network card to which multiple IP addresses are assigned5
However, for the purposes of our discussion, we will take a simple view in which multiple interfaces are installed and each interface has only one IP address. The example in Figure 13 shows such a multi-homed machine.
In the example, machine C has three network interfaces (NI-1, NI-2, and NI-3), each of which is assigned a different IP address. Normally the operating system on the machine is capable of sending and receiving IP datagrams through any of the three network interfaces. The applications running on a multi-homed machine can communicate with the outside through one or more of the available interfaces.
Figure 13 A multi-homed machine with multiple network interfaces
It should be noted that when there are multiple IP addresses on a machine, there will be a unique transport port number space for each of the IP addresses. In other words, on a multi-homed machine the transport port number space is defined on a per-IP-address basis, which means that we can have a unique port 100 for each of IP1, IP2, and IP3.