When TCP/IP was invented, the designers sought to make the network scheme as flexible as possible. So the network functionality was divided into layers, and different functions were allocated to the different layers. Years later, some of the wrinkles and problems with the function allocation were addressed in a new networking scheme, called Open Systems Interconnect (OSI). While OSI never became popular (neither has Ipv6)1, the OSI model represents a convenient way for thinking about networks.
The following table describes how functionality is allocated in the OSI and TCP/IP systems.
|
OSI layer |
TCP/IP layer |
Functionality |
Devices |
|
---|---|---|---|---|---|
7 |
Application |
Application |
The applications |
Clients, Servers, Proxies |
|
6 |
Presentation |
Data translation, encryption |
|||
5 |
Session |
TCP |
|
Creating and destroying connections |
Virtual Servers (VS), or Virtual IPs (VIPs), firewalls |
4 |
Transport |
||||
UDP |
Reliable delivery of data |
||||
3 |
Network |
IP |
Routing packets |
Routers, SNATs, DNATs |
|
2 |
Data link |
Physical |
Control of the wire |
Switches, bridges, hubs |
|
1 |
Physical |
Moving data on and off the wires |
Wires |
Table 1: Comparison of the TCP/IP and OSI stacks
The different devices modify the traffic that flows through them.
Clients are computer programs that initiate network connections (The reason why X-windows appears backwards is that the user is sitting at an X-windows server. The user has to start the client program to make it connect to the server. But how does the user initiate a program if there is no connection? This was taken care of by xdmcp in the old days, and xdmcp still works of course, but modern distributions solve this through desktop environments such as gnome and KDE.). The network aware programs that users use, such as outlook, internet explorer, firefox, PuTTY, WinSCP, thunderbird, are clients (Microsoft's Personal Web server was a tragic exception)
Servers
Proxies
Virtual Servers or Virtual IPs
Firewalls
SNATs and DNATs
Routers
Switches
Bridges
Hubs
1DECnet, SNA, Novell, OSI are all examples of networking technologies which tried to compete with IPv4 and failed. IPv6 has not caught on yet. Why? In the case of DECnet, SNA, and Novell, they were proprietary technologies. Although there are implementations of these systems in the open source world, it is understood that the implementations are for compatibility reasons. In the case of OSI and IPv6, although they are open and they solve certain problems with Ipv4, they are not so much better as to provide a compelling reason to abandon the existing, ubiquitous IPv4 infrastructure.