2. Module in DBMS 49
Prepared by: For-Ian V. Sandoval
CLIENT-SERVER
Client-server computing or networking is a distributed application
architecture that partitions tasks or work loads between service providers
(servers) and service requesters, called clients. Often clients and servers
operate over a computer network on separate hardware. A server is a
high-performance host that is a registering unit and shares its resources
with clients. A client does not share any of its resources, but requests a
server's content or service function. Clients therefore initiate
communication sessions with servers which await (listen to) incoming
requests.
Client-server describes the relationship between two computer programs
in which one program, the client program, makes a service request to
another, the server program. Standard networked functions such as email
exchange, web access and database access, are based on the client-
server model. For example, a web browser is a client program at the user
computer that may access information at any web server in the world. To
check your bank account from your computer, a web browser client
program in your computer forwards your request to a web server program
at the bank. That program may in turn forward the request to its own
database client program that sends a request to a database server at
another bank computer to retrieve your account balance. The balance is
returned to the bank database client, which in turn serves it back to the
web browser client in your personal computer, which displays the
information for you.
The client-server model has become one of the central ideas of network
computing. Many business applications being written today use the client-
server model. So do the Internet's main application protocols, such as
HTTP, SMTP, Telnet, DNS. In marketing, the term has been used to
distinguish distributed computing by smaller dispersed computers from the
"monolithic" centralized computing of mainframe computers. But this
distinction has largely disappeared as mainframes and their applications
have also turned to the client-server model and become part of network
computing.
Each instance of the client software can send data requests to one or
more connected servers. In turn, the servers can accept these requests,
process them, and return the requested information to the client.
Although this concept can be applied for a variety of reasons to many
different kinds of applications, the architecture remains fundamentally the
same.
3. Module in DBMS 50
Prepared by: For-Ian V. Sandoval
The most basic type of client-server architecture employs only two types
of hosts: clients and servers. This type of architecture is sometimes referred
to as two-tier. It allows devices to share files and resources. The two tier
architecture means that the client acts as one tier and application in
combination with server acts as another tier.
The interaction between client and server is often described using
sequence diagrams. Sequence diagrams are standardized in the Unified
Modeling Language.
Specific types of clients include web browsers, email clients, and online
chat clients.
Specific types of servers include web servers, ftp servers, application
servers, database servers, name servers, mail servers, file servers, print
servers, and terminal servers. Most web services are also types of servers.
COMPARISON TO PEER-TO-PEER ARCHITECTURE
Another type of network architecture is known as peer-to-peer, because
each host or instance of the program can simultaneously act as both a
client and a server, and because each has equivalent responsibilities and
status. Peer-to-peer architectures are often abbreviated by P2P.
Both client-server and P2P architectures are in wide usage today. Details
may be found in Comparison of Centralized (Client-Server) and
Decentralized (Peer-to-Peer) Networking.
COMPARISON TO CLIENT-QUEUE-CLIENT ARCHITECTURE
While classic client-server architecture requires one of the communication
endpoints to act as a server, which is much harder to implement, Client-
Queue-Client allows all endpoints to be simple clients, while the server
consists of some external software, which also acts as passive queue (one
software instance passes its query to another instance to queue, e.g.
database, and then this other instance pulls it from database, makes a
response, passes it to database etc.). This architecture allows greatly
simplified software implementation. Peer-to-peer architecture was
originally based on Client-Queue-Client concept.
ADVANTAGES
4. Module in DBMS 51
Prepared by: For-Ian V. Sandoval
1. In most cases, a client-server architecture enables the roles and
responsibilities of a computing system to be distributed among several
independent computers that are known to each other only through a
network. This creates an additional advantage to this architecture:
greater ease of maintenance. For example, it is possible to replace,
repair, upgrade, or even relocate a server while its clients remain both
unaware and unaffected by that change.
2. All the data is stored on the servers, which generally have far greater
security controls than most clients. Servers can better control access
and resources, to guarantee that only those clients with the
appropriate permissions may access and change data.
3. Since data storage is centralized, updates to that data are far easier to
administer than what would be possible under a P2P paradigm. Under
a P2P architecture, data updates may need to be distributed and
applied to each peer in the network, which is both time-consuming
and error-prone, as there can be thousands or even millions of peers.
4. Many mature client-server technologies are already available which
were designed to ensure security, friendliness of the user interface, and
ease of use.
5. It functions with multiple different clients of different capabilities.
DISADVANTAGES
1. Traffic congestion on the network has been an issue since the
inception of the client-server paradigm. As the number of simultaneous
client requests to a given server increases, the server can become
overloaded. Contrast that to a P2P network, where its aggregated
bandwidth actually increases as nodes are added, since the P2P
network's overall bandwidth can be roughly computed as the sum of
the bandwidths of every node in that network.
2. The client-server paradigm lacks the robustness of a good P2P network.
Under client-server, should a critical server fail, clients’ requests cannot
be fulfilled. In P2P networks, resources are usually distributed among
many nodes. Even if one or more nodes depart and abandon a
downloading file, for example, the remaining nodes should still have
the data needed to complete the download
OSI MODEL
5. Module in DBMS 52
Prepared by: For-Ian V. Sandoval
Computer networks can be classified into two broad categories: Local
Area Network (LAN) and Wide Area Networks (WAN).
A LAN is a communications network enables data exchange between
devices within a small geographic area. Here, devices mostly refer to
computers and peripheral devices such as printer.
A WAN usually consists of a local connection of LANs and spreads over a
much larger geographical area, sometimes even spanning the globe.
The Open Systems Interconnection Reference Model (OSI Reference
Model or OSI Model) is an abstract description for layered
communications and computer network protocol design. It was
developed as part of the Open Systems Interconnection (OSI) initiative. In
its most basic form, it divides network architecture into seven layers which,
from top to bottom, are the Application, Presentation, Session, Transport,
Network, Data-Link, and Physical Layers. It is therefore often referred to as
the OSI Seven Layer Model.
A layer is a collection of conceptually similar functions that provide
services to the layer above it and receives service from the layer below it.
On each layer an instance provides services to the instances at the layer
above and requests service from the layer below. For example, a layer
that provides error-free communications across a network provides the
path needed by applications above it, while it calls the next lower layer to
send and receive packets that make up the contents of the path.
Conceptionally two instances at one layer are connected by a horizontal
protocol connection on that layer.
6. Module in DBMS 53
Prepared by: For-Ian V. Sandoval
HISTORY OF OSI MODEL
In 1977, work on a layered
model of network
architecture was started
and the International
Organization for
Standardization (ISO) began
to develop its OSI framework
architecture. OSI has two
major components: an
abstract model of
networking, called the Basic
Reference Model or seven-
layer model, and a set of
specific protocols.
The standard documents
that describe the OSI model
can be freely downloaded
from the ITU-T as the X.200- Figure 4.1 - The OSI Model
series of recommendations.
A number of the protocol specifications are also available as part of the
ITU-T X series. The equivalent ISO and ISO/IEC standards for the OSI model
are available from the ISO, but only some of the ISO/IEC standards are
available as cost-free downloads.
All aspects of OSI design evolved from experiences with the CYCLADES
network, which also influenced Internet design. The new design was
documented in ISO 7498 and its various addenda. In this model, a
networking system is divided into layers. Within each layer, one or more
entities implement its functionality. Each entity interacts directly only with
the layer immediately beneath it, and provides facilities for use by the
layer above it.
Protocols enable an entity in one host to interact with a corresponding
entity at the same layer in another host. Service definitions abstractly
describe the functionality provided to an (N)-layer by an (N-1) layer,
where N is one of the seven layers of protocols operating in the local host.
7. Module in DBMS 54
Prepared by: For-Ian V. Sandoval
DESCRIPTION OF OSI LAYERS
Layer 1: Physical Layer
The Physical Layer is the first and lowest layer in the seven-layer OSI model
of computer networking.
The Physical Layer comprises the basic hardware transmission
technologies of a network. It is a fundamental layer underlying the logical
data structures of the higher level functions in a network. Due to the
plethora of available hardware technologies with widely varying
characteristics, this is perhaps the most complex layer in the OSI
architecture. The implementation of this layer is often termed PHY.
The Physical Layer defines the means of transmitting raw bits rather than
logical data packets over a physical link connecting network nodes. The
bit stream may be grouped into code words or symbols and converted to
a physical signal that is transmitted over a hardware transmission medium.
The Physical Layer provides an electrical, mechanical, and procedural
interface to the transmission medium. The shapes and properties of the
electrical connectors, the frequencies to broadcast on, the modulation
scheme to use and similar low-level parameters, are specified here.
Within the semantics of the OSI network architecture, the Physical Layer
translates logical communications requests from the Data Link Layer into
hardware-specific operations to effect transmission or reception of
electronic signals.
This layer consists of four major components involved in the processing
signals:
1. Transmission format, which can be either digital or analog.
2. Physical transmission medium, which refers to whether bits of data
are transmitted as electrical or optical signals.
3. Data encoding, which emphasizes what signal patterns represent
ones and zeroes and the synchronization between sending and
receiving devices.
4. Physical medium attachment, which deals with wiring and pin
layouts connectors.
8. Module in DBMS 55
Prepared by: For-Ian V. Sandoval
Physical Layer examples:
1. V.92 telephone network modems
2. IRDA Physical Layer
3. USB Physical Layer
4. Firewire
5. EIA RS-232, EIA-422, EIA-423, RS-449, RS-485
6. ITU Recommendations: see ITU-T
7. DSL
8. ISDN
9. T1 and other T-carrier links, and E1 and other E-carrier links
10. 10BASE-T, 10BASE2, 10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T,
1000BASE-T, 1000BASE-SX and other varieties of the Ethernet physical
layer
11. Varieties of 802.11
12. SONET/SDH
13. GSM Um radio interface physical layer
14. Bluetooth Physical Layer
15. IEEE 802.11x Wi-Fi Physical Layers
16. TransferJet Physical Layer
17. Etherloop
18. ARINC 818 Avionics Digital Video Bus
19. G.hn/G.9960 Physical Layer
Layer 2: Data Link Layer
Networks transfer data in “chunks” or packets, of a certain size. The data
link layer forms data packets, manages their movement at each node in
the network, and adds the appropriate addresses of the source and
destination nodes. In PC-based LANs, it is at this layer that protocols like
Token Ring and Ethernet are implemented. These functions are often
performed by network interface cards (NICs) installed in computers.
Layer 3: Network Layer
The Network Layer provides the functional and procedural means of
transferring variable length data sequences from a source to a
destination via one or more networks, while maintaining the quality of
service requested by the Transport Layer. The Network Layer performs
network routing functions, and might also perform fragmentation and
reassembly, and report delivery errors. Routers operate at this layer—
sending data throughout the extended network and making the Internet
9. Module in DBMS 56
Prepared by: For-Ian V. Sandoval
possible. This is a logical addressing scheme – values are chosen by the
network engineer. The addressing scheme is hierarchical.
The best-known example of a Layer 3 protocol is the Internet Protocol (IP).
It manages the connectionless transfer of data one hop at a time, from
end system to ingress router, router to router, and from egress router to
destination end system. It is not responsible for reliable delivery to a next
hop, but only for the detection of errored packets so they may be
discarded. When the medium of the next hop cannot accept a packet in
its current length, IP is responsible for fragmenting the packet into
sufficiently small packets that the medium can accept.
A number of layer management protocols, a function defined in the
Management Annex, ISO 7498/4, belong to the Network Layer. These
include routing protocols, multicast group management, Network Layer
information and error, and Network Layer address assignment. It is the
function of the payload that makes these belong to the Network Layer,
not the protocol that carries them.
Layer 4: Transport Layer
The Transport Layer provides transparent transfer of data between end
users, providing reliable data transfer services to the upper layers. The
Transport Layer controls the reliability of a given link through flow control,
segmentation/desegmentation, and error control. Some protocols are
state and connection oriented. This means that the Transport Layer can
keep track of the segments and retransmit those that fail.
Although not developed under the OSI Reference Model and not strictly
conforming to the OSI definition of the Transport Layer, typical examples
of Layer 4 are the Transmission Control Protocol (TCP) and User Datagram
Protocol (UDP).
Of the actual OSI protocols, there are five classes of connection-mode
transport protocols ranging from class 0 (which is also known as TP0 and
provides the least error recovery) to class 4 (TP4, designed for less reliable
networks, similar to the Internet). Class 0 contains no error recovery, and
was designed for use on network layers that provide error-free
connections. Class 4 is closest to TCP, although TCP contains functions,
such as the graceful close, which OSI assigns to the Session Layer. Also, all
OSI TP connection-mode protocol classes provide expedited data and
preservation of record boundaries, both of which TCP is incapable.
10. Module in DBMS 57
Prepared by: For-Ian V. Sandoval
Table 4.1 - Detailed characteristics of TP0-4 classes are shown in the
following table:
Perhaps an easy way to visualize the Transport Layer is to compare it with
a Post Office, which deals with the dispatch and classification of mail and
parcels sent. Do remember, however, that a post office manages the
outer envelope of mail. Higher layers may have the equivalent of double
envelopes, such as cryptographic presentation services that can be read
by the addressee only. Roughly speaking, tunneling protocols operate at
the Transport Layer, such as carrying non-IP protocols such as IBM's SNA or
Novell's IPX over an IP network, or end-to-end encryption with IPsec. While
Generic Routing Encapsulation (GRE) might seem to be a Network Layer
protocol, if the encapsulation of the payload takes place only at
endpoint, GRE becomes closer to a transport protocol that uses IP
headers but contains complete frames or packets to deliver to an
endpoint. L2TP carries PPP frames inside transport packet.
Layer 5: Session Layer
The Session Layer is Layer 5 of the seven-layer OSI model of computer
networking.
The Session Layer provides the mechanism for opening, closing and
managing a session between end-user application processes, i.e. a semi-
permanent dialogue. Communication sessions consist of requests and
responses that occur between applications. Session Layer services are
commonly used in application environments that make use of remote
procedure calls (RPCs).
11. Module in DBMS 58
Prepared by: For-Ian V. Sandoval
The Session Layer controls the dialogues (connections) between
computers. It establishes, manages and terminates the connections
between the local and remote application. It provides for full-duplex, half-
duplex, or simplex operation, and establishes checkpointing,
adjournment, termination, and restart procedures. The OSI model made
this layer responsible for graceful close of sessions, which is a property of
the Transmission Control Protocol, and also for session checkpointing and
recovery, which is not usually used in the Internet Protocol Suite. The
Session Layer is commonly implemented explicitly in application
environments that use remote procedure calls.
An example of a Session Layer protocol is the OSI protocol suite Session
Layer Protocol, also known as X.225 or ISO 8327. In case of a connection
loss this protocol may try to recover the connection. If a connection is not
used for a long period, the Session Layer Protocol may close it and re-
open it. It provides for either full duplex or half-duplex operation and
provides synchronization points in the stream of exchanged messages.
Other examples of Session Layer implementations include Zone
Information Protocol (ZIP) – the AppleTalk protocol that coordinates the
name binding process, and Session Control Protocol (SCP) – the DECnet
Phase IV Session Layer protocol.
Within the service layering semantics of the OSI network architecture, the
Session Layer responds to service requests from the Presentation Layer and
issues service requests to the Transport Layer.
Layer 6: Presentation Layer
The Presentation Layer is Layer 6 of the seven-layer OSI model of
computer networking.
The Presentation Layer is responsible for the delivery and formatting of
information to the application layer for further processing or display. It
relieves the application layer of concern regarding syntactical differences
in data representation within the end-user systems. Note: An example of a
presentation service would be the conversion of an EBCDIC-coded text
file to an ASCII-coded file.
The Presentation Layer is the lowest layer at which application
programmers consider data structure and presentation, instead of simply
sending data in form of datagrams or packets between hosts. This layer
deals with issues of string representation - whether they use the Pascal
12. Module in DBMS 59
Prepared by: For-Ian V. Sandoval
method (an integer length field followed by the specified amount of
bytes) or the C/C++ method (null-terminated strings, i.e. "thisisastring0"). The
idea is that the application layer should be able to point at the data to be
moved, and the Presentation Layer will deal with the rest.
The Presentation Layer establishes a context between Application Layer
entities, in which the higher-layer entities can use different syntax and
semantics, as long as the Presentation Service understands both and the
mapping between them. The presentation service data units are then
encapsulated into Session Protocol Data Units, and moved down the
stack.
This layer provides independence from differences in data representation
(e.g., encryption) by translating from application to network format, and
vice versa. The presentation layer works to transform data into the form
that the application layer can accept. This layer formats and encrypts
data to be sent across a network, providing freedom from compatibility
problems. It is sometimes called the syntax layer.
The original presentation structure used the Basic Encoding Rules of
Abstract Syntax Notation One (ASN.1), with capabilities such as
converting an EBCDIC-coded text file to an ASCII-coded file, or
serialization of objects and other data structures from and to XML.
Encryption is typically done at this level too, although it can be done at
the Application, Session, Transport, or Network Layers; each having its own
advantages and disadvantages. Another example is representing
structure, which is normally standardized at this level, often by using XML.
As well as simple pieces of data, like strings, more complicated things are
standardized in this layer. Two common examples are 'objects' in object-
oriented programming, and the exact way that streaming video is
transmitted.
In many widely used applications and protocols, no distinction is made
between the presentation and application layers. For example, HTTP,
generally regarded as an application layer protocol, has Presentation
Layer aspects such as the ability to identify character encoding for proper
conversion, which is then done in the Application Layer.
Within the service layering semantics of the OSI network architecture, the
Presentation Layer responds to service requests from the Application Layer
and issues service requests to the Session Layer.
13. Module in DBMS 60
Prepared by: For-Ian V. Sandoval
Layer 7: Application Layer
Application Layer is a term used in categorizing protocols and methods in
architectural models of computer networking. Both the OSI model and
the Internet Protocol Suite (TCP/IP) contain an application layer.
In TCP/IP, the Application Layer contains all protocols and methods that
fall into the realm of process-to-process communications via an Internet
Protocol (IP) network using the Transport Layer protocols to establish
underlying host-to-host connections.
In the OSI model, the definition of its Application Layer is narrower in
scope, distinguishing explicitly additional functionality above the Transport
Layer at two additional levels: Session Layer and Presentation Layer. OSI
specifies strict modular separation of functionality at these layers and
provides protocol implementations for each layer.
The common application layer services provide semantic conversion
between associated application processes. Note: Examples of common
application services of general interest include the virtual file, virtual
terminal, and job transfer and manipulation protocols.
The application layer is the OSI layer closest to the end user, which means
that both the OSI application layer and the user interact directly with the
software application. This layer interacts with software applications that
implement a communicating component. Such application programs fall
outside the scope of the OSI model. Application layer functions typically
include identifying communication partners, determining resource
availability, and synchronizing communication. When identifying
communication partners, the application layer determines the identity
and availability of communication partners for an application with data
to transmit. When determining resource availability, the application layer
must decide whether sufficient network resources for the requested
communication exist. In synchronizing communication, all communication
between applications requires cooperation that is managed by the
application layer. Some examples of application layer implementations
include Telnet, Hypertext Transfer Protocol (HTTP), File Transfer Protocol
(FTP), and Simple Mail Transfer Protocol (SMTP).
Protocol examples:
• 9P, Plan 9 from Bell Labs distributed file system protocol
• AFP, Apple Filing Protocol
• APPC, Advanced Program-to-Program Communication
14. Module in DBMS 61
Prepared by: For-Ian V. Sandoval
• AMQP, Advanced Message Queuing Protocol
• BitTorrent
• Atom Publishing Protocol
• BOOTP, Bootstrap Protocol
• CFDP, Coherent File Distribution Protocol
• DDS, Data Distribution Service
• DHCP, Dynamic Host Configuration Protocol
• DeviceNet
• DNS, Domain Name System (Service) Protocol
• eDonkey
• ENRP, Endpoint Handlespace Redundancy Protocol
• FastTrack (KaZaa, Grokster, iMesh)
• Finger, User Information Protocol
• Freenet
• FTAM, File Transfer Access and Management
• FTP, File Transfer Protocol
• Gopher, Gopher protocol
• HL7, Health Level Seven
• HTTP, HyperText Transfer Protocol
• H.323, Packet-Based Multimedia Communications System
• IMAP, IMAP4, Internet Message Access Protocol (version 4)
• IRCP, Internet Relay Chat Protocol
• Kademlia
• LDAP, Lightweight Directory Access Protocol
• LPD, Line Printer Daemon Protocol
• MIME (S-MIME), Multipurpose Internet Mail Extensions and Secure
MIME
• Modbus
• Netconf
• NFS, Network File System
• NIS, Network Information Service
• NNTP, Network News Transfer Protocol
• NTCIP, National Transportation Communications for Intelligent
Transportation System Protocol
• NTP, Network Time Protocol
• OSCAR, AOL Instant Messenger Protocol
• PNRP, Peer Name Resolution Protocol
• POP, POP3, Post Office Protocol (version 3)
• Rlogin, Remote Login in UNIX Systems
• RTPS, Real Time Publish Subscribe
• RTSP, Real Time Streaming Protocol
• SAP, Session Announcement Protocol
• SDP, Session Description Protocol
• SIP, Session Initiation Protocol
15. Module in DBMS 62
Prepared by: For-Ian V. Sandoval
• SLP, Service Location Protocol
• SMB, Server Message Block
• SMTP, Simple Mail Transfer Protocol
• SNMP, Simple Network Management Protocol
• SNTP, Simple Network Time Protocol
• SSH, Secure Shell
• SSMS, Secure SMS Messaging Protocol
• RDP, Remote Desktop Protocol
• TCAP, Transaction Capabilities Application Part
• TDS, Tabular Data Stream
• TELNET, Terminal Emulation Protocol of TCP/IP
• TFTP, Trivial File Transfer Protocol
• TSP, Time Stamp Protocol
• VTP, Virtual Terminal Protocol
• Waka, an HTTP replacement protocol
• Whois (and RWhois), Remote Directory Access Protocol
• WebDAV
• X.400, Message Handling Service Protocol
• X.500, Directory Access Protocol (DAP)
• XMPP, Extensible Messaging and Presence Protocol
INTERFACES
Neither the OSI Reference Model nor OSI protocols specify any
programming interfaces, other than as deliberately abstract service
specifications. Protocol specifications precisely define the interfaces
between different computers, but the software interfaces inside
computers are implementation-specific.
For example, Microsoft Windows' Winsock, and Unix's Berkeley sockets and
System V Transport Layer Interface, are interfaces between applications
(Layer 5 and above) and the transport (Layer 4). NDIS and ODI are
interfaces between the media (Layer 2) and the network protocol (Layer
3).
Interface standards, except for the Physical Layer to Media, are
approximate implementations of OSI Service Specifications.
16. Example of neither OSI Reference Model nor OSI protocols specify any programming interfaces.