The Client Server Model And Software Design

Slides:



Advertisements
Similar presentations
Remote Procedure Call (RPC)
Advertisements

CCNA – Network Fundamentals
Intermediate TCP/IP TCP Operation.
Chapter 7: Transport Layer
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking Assist. Prof.
Lecture 7 Transport Layer
Chapter 7 – Transport Layer Protocols
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Chapter 25 Internet Routing Internetworking Technology How routing tables are built initially How routing software updates the tables as needed. Propagation.
Networking Theory (part 2). Internet Architecture The Internet is a worldwide collection of smaller networks that share a common suite of communication.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
Introduction to Network Programming and Client-Server Design.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
What Is TCP/IP? The large collection of networking protocols and services called TCP/IP denotes far more than the combination of the two key protocols.
Client Server Model and Software Design TCP/IP allows a programmer to establish communication between two application and to pass data back and forth.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Chapter Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
1 Transport Layer Computer Networks. 2 Where are we?
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
TCP/IP: Basics1 User Datagram Protocol (UDP) Another protocol at transport layer is UDP. It is Connectionless protocol i.e. no need to establish & terminate.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.6 UDP Principles (Chapter 24) (User Datagram Protocol)
University of the Western Cape Chapter 12: The Transport Layer.
TCP/IP Transport and Application (Topic 6)
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets, 5e By Douglas E. Comer Lecture PowerPoints.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
User Datagram Protocol (UDP) Chapter 11. Know TCP/IP transfers datagrams around Forwarded based on destination’s IP address Forwarded based on destination’s.
Copyright © Curt Hill, Client – Server Computing An important paradigm.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
MODULE I NETWORKING CONCEPTS.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
The InetAddress Class A class for storing and managing internet addresses (both as IP numbers and as names). The are no constructors but “class factory”
Client-Server Model of Interaction Chapter 20. We have looked at the details of TCP/IP Protocols Protocols Router architecture Router architecture Now.
Networking Basics CCNA 1 Chapter 11.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Reading TCP/IP Protocol. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
UDP: User Datagram Protocol Chapter 12. Introduction Multiple application programs can execute simultaneously on a given computer and can send and receive.
Data Communications and Networks Chapter 6 – IP, UDP and TCP ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
TCP/IP Protocol Suite Suresh Kr Sharma 1 The OSI Model and the TCP/IP Protocol Suite Established in 1947, the International Standards Organization (ISO)
R Some of these slides are from Prof Frank Lin SJSU. r Minor modifications are made. 1.
Process-to-Process Delivery:
Chapter 7: Transport Layer
Boots Cassel Villanova University
Chapter 3 Internet Applications and Network Programming
NET323 D: Network Protocols
Client-Server Interaction
NET323 D: Network Protocols
Process-to-Process Delivery:
Networking Theory (part 2)
CPEG514 Advanced Computer Networkst
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
UDP Principles (Chapter 24) (User Datagram Protocol)
Transport Layer 9/22/2019.
Networking Theory (part 2)
Presentation transcript:

The Client Server Model And Software Design Lecturer: Tran Dang Hoan Faculty of Information Technology Vietnam Maritime University

Introduction TCP merely provides basic mechanisms used to transfer data. TCP/IP allows a programmer to establish communication between two application programs and to pass data back and forth. TCP/IP provides peer-to-peer communication. Clien/Server paradigm is a method to build a network application. Everyone is connected with fat pipes. It is easy to connect hardware together. Definition: a distributed system is A collection of independent computers that appears to its users as a single coherent system.

Motivation Because TCP/IP does not provide any mechanisms that automatically create running programs when a message arrives, a program must be waiting to accept communication before any requests arrive. To ensure that computers are ready to communicate, most system administrators arrange to have communication programs start automatically whenever OS boots. Each program runs forever.

Terminology And Concept (1) Client is an application that initiates peer-to-peer communication. Most client software consists of conventional programs. When client is executed, it contacts a server, sends a request, and awaits a response. When repsonses arrives, the client continues processing. Server is an application that waits for incoming communication requests from client. The server receives a client’s request, performs the necessary computation, and returns the results to the client.

Terminology And Concepts Because server often need to access data, computation, or protocol ports that the OS protects, server usually requires special system privileges. Authentication-verifying the identity of the client. Authorization-determining whether a given client is permitted to access the service the server supplies. Data security-guaranteeing that data is not unintentionally revealed or compromised. Privacy-keeping information about an individual from unauthorized access. Protection-guaranteeing that network applications cannot abuse system resources. Server is an application that waits for incoming communication requests from client. The server receives a client’s request, performs the necessary computation, and returns the results to the client.

Terminology And Concepts (2) Standard Vs. Nonstandard Client Software Standard application services consist of the serivices defined by TCP/IP and those serivices defined by TCP/IP and assigned well-known, universally recognized protocol port identifiers. (Eg: e-mail). Nonstandard application is locally-defined application serivice (Eg: an instituation’s private database system) The distinction between standard services and nonstandard appclication is only important when communcating outside the local environment. Within a given environment, system administrators usually arrange to define serivice names in such a way that users cannot distinguish between local and standard services. Programmers who build network application that will be used at other sites must understand the distinction.

Terminology And Concepts Parameterization of Clients Some client software provides more generality than others. In particular, some client software allows the user to specify both the remote machine on which a server operates and protocol port number at which the server is listening. Software that allows a user to specify a protocol port number has more input parameters than the other software, this type of software called fully parameterized client. An example: telnet machine-name port When designing client application software, include parameters that allow the user to fully specify the destination machine and destination protocol port number.

Connectionless Vs. Connection-Oriented Servers The two types of interaction correspond directly to the two major transport protocols that the TCP/IP protocol suite supplies. TCP: connection-oriented, UDP: connectionless. OS can be developed for either type of environment. The distinction between two types of interaction is critical because it determines the level of reliability that underlying system provides. Connection-oriented interaction: verify that data arrives, that transmits segments that do not. It computes a checksum over data to guarantee that it is not corrupted during transmission. It uses sequence numbers to ensure that the data arrives in order, and automatically eliminates duplicate packets. It provides flow control to ensure that the sender does not transmit data faster than the receiver can consume it. TCP informs both the client and server if the underlying network becomes inoperable for any reasons. By contrast, clients and servers that use UDP do not have any guarantees about reliable delivery. When a client sends a request, the request may be lost, duplicated, delayed, or delivered out of order. Similarly, a response the server sends back to a client may be lost, duplicated, delayed, or delivered out of order. The client and server application programs must take appropriate actions to detect and correct such errors.

Connectionless Vs. Connection-Oriented Servers-continued Application programs only use UDP if: (1) The application protocol specifies that UDP must be used (2) The application relies on hardware broadcast or multicast, or (3) The application cannot tolerate the computational overhead or delay required for TCP virtual circuits. Summary: When designing clien-server applications, beginners are strongly advised to use TCP because it provides reliable, connection-oriented communication. Programs only use UDP if the application protocol handles reliablity, the application requires hardware broadcast or multcicast, or the application cannot tolerate virtual circiut overhead.

Stateless Vs. Stateful Server Server maintains information about the status of ongoing interaction with clients is called stateful server. Server that do not keep any state information are called stateless server. Why we need stateful servers? State information allow a server to remember what client requested previously and to compute an incremental response as each new request arrives=>efficiency, server give response quickly Why we need stateless servers? State information in a server can become incorrect if messages are lost, duplicated, or delivered out of order or if the client computer crashes and reboots. If server uses incorrect information when computing a response, it may respond incorrectly.

Servers As Clients A program can be both client and server. Server may need to access network services that require it to act as a client. File server needs to obtain the time of the day so it can stamp files with the time of access. Suppose that the system on which it operates does not have a time-of-day clock. To obtain a time-of-day server, the server acts as a client by sending a request to a time-of-day server.

Concurrent Processing in Client-Server Software Concurrent Processing is the power of client-server software, but also makes difficult to design and built. Concurrency refers to real or apparent simultaneous computing. Concurrent Processing in: Multi-user computer system:can achieve concurrency by time-sharing, a method to switch a single processor among multiple computations quickly enough to give the appearance of simultaneous Multiprocessing: a design in which multiple processors performs multiple computations simultaneously.

Concurrency Processing:Continued Most client software achivieves concurrent operation because the underlying operating system allows users to execute client programs concurrently Users on many machines each execute client software simultaneously. An individual client program operates like any conventional program; it does not manage concurrency explicitly.

Concurrency in Servers A single server must handle incoming requests concurrently. The process defines the fundamental unit of computation. The most essential information associated with a process is an instruction pointer that specifies the address at which the process is executing. Application programmers builds programs for a concurrent environment without knowing whether the underlying hardware consists of uniprocessor or multiprocessor