Nº
1209
תאריך: CALL
מחיר: 5080 + מע"מ
משך הקורס: 5 ימים
Course Overview:The course introduces the fundamental concept of client-server computing used to build networking applications. The course discusses various server designs as well as the tools and techniques used to build clients and servers. It contains examples of running programs that illustrate each of the designs and tools.
Prerequisities:None
Course Outline:
1. Introduction And Overview
-
Use Of TCP/IP
-
Designing Applications For A Distributed Environment
-
Standard And Nonstandard Application Protocols
-
An Example Of Standard Application Protocol Use
-
An Example Connection
-
Application Protocols And Software Flexibility
-
Viewing Services From The Provider's Perspective
2. The Client Server Model And Software Design
-
Introduction
-
Motivation
-
Terminology And Concepts
-
Clients And Servers
-
Privilege And Complexity
-
Standard Vs. Nonstandard Client Software
-
Parameterization Of Clients
-
Connectionless Vs. Connection-Oriented Servers
-
Stateless Vs. Stateful Servers
3. Concurrent Processing In Client-Server Software
-
Concurrency In Networks
-
Concurrency In Servers
-
Terminology And Concepts
-
The Process Concept
-
An Example Of Concurrent Process Creation
-
Timeslicing
-
Making Processes Diverge
-
Executing New Code
-
Context Switching And Protocol Software Design
-
Concurrency And Asynchronous I/O
4. Program Interface To Protocols
-
Loosely Specified Protocol Software Interface
-
Interface Functionality
-
Conceptual Interface Specification
-
System Calls
-
Two Basic Approaches To Network Communication
5. The Socket Interface
6. Algorithms And Issues In Client Software Design
-
Client Architecture
-
Identifying The Location Of A Server
-
Parsing An Address Argument
-
Looking Up A Domain Name
-
The TCP Client Algorithm
-
Allocating A Socket
-
Choosing A Local Protocol Port Number
-
Connecting A TCP Socket To A Server
-
Communicating With The Server Using TCP
-
Reading A Response From A TCP Connection
-
Closing A TCP Connection
-
The Need For Partial Close
-
A Partial Close Operation
-
Programming A UDP Client
-
Connected And Unconnected UDP Sockets
-
Communicating With A Server Using UDP
-
Closing A Socket That Uses UDP
-
Partial Close For UDP
7. Example Client Software: The DAYTIME Service
8. Algorithms And Issues In Server Software Design
-
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
-
Placing The Socket In Passive Mode
-
Accepting Connections And Using Them
-
An Iterative, Connectionless Server Algorithm
-
Forming A Reply Address In A Connectionless Server
-
Master And Slave Processes
-
A Concurrent, Connectionless Server Algorithm
-
A Concurrent, Connection-Oriented Server Algorithm
-
When To Use Each Server Type
-
The Problem Of Server Deadlock
9. Iterative, Connectionless Servers (UDP)
-
Introduction
-
Creating A Passive Socket
-
Process Structure
10. Iterative, Connection-Oriented Servers (TCP)
-
Introduction
-
Allocating A Passive TCP Socket
-
Process Structure
-
Closing Connections
-
Connection Termination And Server Vulnerability
11. Concurrent, Connection-Oriented Servers (TCP)
-
Introduction
-
Iterative Vs. Concurrent Implementations
-
Process Structure
-
Cleaning Up Errant Processes
12. Single-Process, Concurrent Servers (TCP)
-
Introduction
-
Data-driven Processing In A Server
-
Data-Driven Processing With A Single Process
-
Process Structure Of A Single-Process Server
13. Multiprotocol Servers (TCP, UDP)
14. Multiservice Servers (TCP, UDP)
15. Uniform, Efficient Management Of Server Concurrency
16. Concurrency In Clients
17. Tunneling At The Transport And Application Levels
18. Deadlock And Starvation In Client-Server Systems
-
Introduction
-
Definition Of Deadlock
-
Difficulty Of Deadlock Detection
-
Deadlock Avoidance
-
Deadlock Between A Client And Server
-
Avoiding Deadlock In A Single Interaction
-
Starvation Among A Set Of Clients And A Server
-
Busy Connections And Starvation
-
Avoiding Blocking Operations
-
Processes, Connections, And Other Limits
-
Cycles Of Clients And Servers
19. Summary