Foundation Elective: Dept. of IS & E, The NIE, Mysore - 8 2020-21
Foundation Elective: Dept. of IS & E, The NIE, Mysore - 8 2020-21
FOUNDATION ELECTIVE
Course outcomes
On successful completion of the course, students will be able to:
1. Analyze the requirements of the client and serverenvironment.
2. Explain socket programming ofclient server systems.
3. Demonstrate knowledge of current client/server system.
4. Develop client server applications.
5. Identify Algorithms and issues in server design.
MODULE1: 8 Hrs
The Client Server Model and Software Design, Concurrent Processing in Client-Server software:
Introduction, Motivation, Terminology and Concepts, Introduction, Concurrency in Networks,
Concurrency in Servers, Terminology and Concepts, Anexample of Concurrent Process Creation,
Executing New Code, Context Switching and Protocol SoftwareDesign,
Self-Learning Exercise:Concurrency and Asynchronous I/O.
MODULE2: 8 Hrs
Program Interface to Protocols, The Socket Interface: Introduction, Loosely Spec ified Protocol
Software Interface, Interface Functionality, Conceptual Interface Specification, System Calls,
Two Basic Approaches to Network Communication, The Basic I/O Functions available in UNIX,
Using UNIX I/O with TCP/IP, Introduction, Berkley Sockets, Specifying a Protocol Interface,
The Socket Abstraction, Specifying an End Point Address, A Generic Address Structure, Major
System Calls used with Sockets, Utility Routines for Integer Conversion, Using Socket Calls in a
Program,
Self-Learning Exercise:Symbolic Constants for Socket Call Parameters.
MODULE3: 9 Hrs
Algorithms and Issues in Client Software Design: Introduction, Learning Algorithms instead of
Details, Client Architecture, Identifying the Location of a Server, Parsing an Address Argument,
Looking up a Domain Name, Looking up a well-known Port by Name, Port Numbers and
Network Byte Order, Looking up a Protocol by Name, The TCP Client Algorithm, Allocating a
14
Dept. of IS & E, The NIE, Mysore -8 2020-21
Socket, Choosing a Local Protocol Port Number, A fundamental Problem in choosing a Local IP
Address, Connecting a TCP Socket to a Server, Communicating with the Server using TCP,
Reading a response from a TCP Connection, Closing a TCP Connection, Programming a UDP
Client, Connected and Unconnected UDP Socket, Using Connect with UDP, Communicating
with a Server using UDP, Closing a Socket that usesUDP,
Self-Learning Exercise:Partial Close for UDP, A Warning about UDP Unreliability.
MODULE4: 7 Hrs
Example Client Software: Introduction, The Importance of Small Examples, Hiding Details, An
Example Procedure Library for Client Programs, Implementation of Connect TCP,
Implementation of Connect UDP, A Procedure that Forms Connections, Using the Example
Library, The DAYTIME Service, Implementation of a TCP Client for DAYTIME, Reading from
a TCP Connection, The Time Service, Accessing the TIME Service, Accurate Times and
Network Delays, A UDP Client for the TIME Service, The ECHO Service, A TCP Client for the
ECHOService,
Self-Learning Exercise:A UDP Client for the ECHO Service.
MODULE5: 7Hrs
Algorithms and Issues in Server Software Design: Introduction, The Conceptual Server
Algorithm, Concurrent Vs Iterative Servers, Connection-Oriented Vs Connectionless Access,
Connection-Oriented Servers, Connectionless Servers, Failure, Reliability and Statelessness,
Optimizing Stateless Servers, Four Basic Types of Servers, Request Processing Time, Iterative
Server Algorithms, An Iterative Connection-Oriented Server Algorithm, Binding to a Well
Known Address using INADDR_ ANY, Placing the Socket in Passive Mode, Accepting
Connections and using them. An Iterative Connectionless Server Algorithm, Forming a Reply
Address in a Connectionless Server, Concurrent Server Algorithms, Master and Slave Processes,
A Concurrent Connectionless Server Algorithm, A concurrent Connection-Oriented Server
Algorithm, Using separate Programs as Slaves, Apparent Concurrency using a Single Process,
When to use each Server Types, The Important Problem of Server Deadlock
Self-Learning Exercise: Alternative Implementations.
TEXTBOOK:
1. Douglas E.Comer, David L. Stevens: Internetworking with TCP/IP – Vol. 3, Client-Server
Programming and Applications, PHI LEARNING PVT. LTD-NEW DELHI, 2nd Edition,2009.
15
Dept. of IS & E, The NIE, Mysore -8 2020-21
REFERENCE BOOK:
1. W. Richard Stevens, “UNIX NETWORK PROGRAMMING”, PHI LEARNING PVT.
LTD-NEW DELHI 3RDIndian Reprint Edition,2009
2. W. Richard Stevens, “Unix Network Programming: Interprocess Communications”,
Volume – 2, Phi Learning Edition, 2nd Edition,2009
E-Books:
1. http://alandix.com/academic/tutorials/tcpip/TCP-IP-complete.pdf
MOOCs:
1. https://www.csd.uoc.gr/~hy556/material/tutorials/cs556-3rd-tutorial.pdf
2. http://ftp.sas.com/techsup/download/SASC/share5958-59/S5958v2.pdf
16