ISO/OSI Network Model
The standard model for networking protocols and distributed applications is
the International Standard Organization's Open System Interconnect (ISO/OSI)
model. It defines seven network layers.
Layer 1 - Physical
Physical layer defines the cable or physical medium itself, e.g.,
thinnet, thicknet, unshielded twisted pairs (UTP). All media are functionally
equivalent. The main difference is in convenience and cost of installation
and maintenance. Converters from one media to another operate at this level.
Layer 2 - Data Link
Data Link layer defines the format of data on the network. A network
data frame, aka packet, includes checksum, source and destination address,
and data. The largest packet that can be sent through a data link layer
defines the Maximum Transmission Unit (MTU). The data link layer handles
the physical and logical connections to the packet's destination, using a
network interface. A host connected to an Ethernet would have an Ethernet
interface to handle connections to the outside world, and a loopback
interface to send packets to itself.
Ethernet addresses a host using a unique, 48-bit address called its Ethernet
address or Media Access Control (MAC) address. MAC addresses are usually
represented as six colon-separated pairs of hex digits, e.g., 8:0:20:11:ac:85.
This number is unique and is associated with a particular Ethernet device.
Hosts with multiple network interfaces should use the same MAC address on
each. The data link layer's protocol-specific header specifies the MAC
address of the packet's source and destination. When a packet is sent
to all hosts (broadcast), a special MAC address (ff:ff:ff:ff:ff:ff) is used.
Switches and bridges operates in this layer. WebMux has a transparent mode
that operates in this layer.
Layer 3 - Network
NFS uses Internetwork Protocol (IP) as its network layer interface.
IP is responsible for routing, directing datagrams from one network to
another. The network layer may have to break large datagrams, larger than MTU,
into smaller packets and host receiving the packet will have to reassemble
the fragmented datagram. The Internetwork Protocol identifies each host
with a 32-bit IP address. IP addresses are written as four dot-separated
decimal numbers between 0 and 255, e.g., 129.79.16.40. The leading 1-3
bytes of the IP identify the network and the remaining bytes identifies
the host on that network. The network portion of the IP is assigned by
InterNIC Registration Services, under the contract to the National Science
Foundation, and the host portion of the IP is assigned by the local network
administrators, locally by noc@indiana.edu. For large sites, usually
subnetted like ours, the first two bytes represents the network portion
of the IP, and the third and fourth bytes identify the subnet and host
respectively.
Even though IP packets are addressed using IP addresses, hardware
addresses must be used to actually transport data from one host to another.
The Address Resolution Protocol (ARP) is used to map the IP address to
it hardware address.
In recent years, to address the IP addresses shortage issue, an IPV6
proposal has been passed. In this IPV6 address space, the IP addresses
will have format like:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:4171
3ffe:2a00:100:7031::1
1080::8:800:200C:417A
::192.9.5.5
::FFFF:129.144.52.38
2010:836B:4179::836B:4179
WebMux supports both IPV4 and IPV6 address spaces.
Layer 4 - Transport
Transport layer subdivides user-buffer into network-buffer sized
datagrams and enforces desired transmission control. Two transport
protocols, Transmission Control Protocol (TCP) and User Datagram Protocol
(UDP), sits at the transport layer. Reliability and speed are the primary
difference between these two protocols. TCP establishes connections
between two hosts on the network through 'sockets' which are determined
by the IP address and port number. TCP keeps track of the packet
delivery order and the packets that must be resent. Maintaining this
information for each connection makes TCP a stateful protocol.
UDP on the other hand provides a low overhead transmission service, but
with less error checking. NFS is built on top of UDP because of its speed
and statelessness. Statelessness simplifies the crash recovery.
Layer 4 based load balancing can handle TCP/IP or UDP/IP protocol. When
WebMux working in this layer, it may also depends on some of its higher
layer functions. For example, for supporting passive FTP load balancing,
WebMux actually watches the data packets back and forth and decode the
data to determine the passive communication high ports.
Layer 5 - Session
The session protocol defines the format of the data sent over the
connections. The NFS uses the Remote Procedure Call (RPC) for its session
protocol. RPC may be built on either TCP or UDP. Login sessions uses TCP
whereas NFS and broadcast use UDP. Some session information is being used
for WebMux to determine how to best load balancing the traffic.
Layer 6 - Presentation
External Data Representation (XDR) sits at the presentation level.
It converts local representation of data to its canonical form and vice versa.
The canonical uses a standard byte ordering and structure packing convention,
independent of the host.
Layer 7 - Application
Provides network services to the end-users. HTTP, HTTPS, Mail, ftp, telnet, DNS,
NIS, NFS are examples of network applications.
WebMux has extend features to support layer 7 traffic management. Those layer 7
features allows WebMux to redirect users based on the rules administrator setup.
Most the layer 7 features are related to the HTTP protocol. For traffic that is
in the HTTPS protocol, one must enable WebMux's SSL acceleration feature to
terminate HTTPS traffic into HTTP traffic. In the HTTP protocol, there
is a MIME header. WebMux can exam the MIME header to redirecting the client
traffic to stick to one srever, or to a different server, based on rules setup
for URL, or cookie.
TCP/IP Network Model
Although the OSI model is widely used and often cited as the standard,
TCP/IP protocol has been used by most Unix workstation vendors. TCP/IP
is designed around a simple four-layer scheme. It does omit some
features found under the OSI model. Also it combines the features of some
adjacent OSI layers and splits other layers apart. The four network layers
defined by TCP/IP model are as follows (WebMux layers are not based on this section).
Layer 1 - Link
This layer defines the network hardware and device drivers.
Layer 2 - Network
This layer is used for basic communication, addressing and routing.
TCP/IP uses IP and ICMP protocols at the network layer.
Layer 3 - Transport
Handles communication among programs on a network. TCP and UDP falls
within this layer.
Layer 4 - Application
End-user applications reside at this layer. Commonly used applications
include HTTP, HTTPS, NFS, DNS, arp, rlogin, talk, ftp, ntp and traceroute.