Reliable Client-Server Communication

Slides:



Advertisements
Similar presentations
Intermediate TCP/IP TCP Operation.
Advertisements

Transport Layer Transport Layer. Reliable data transfer: getting started send side receive side rdt_send(): called from above, (e.g., by app.).
Distributed Systems CS Fault Tolerance- Part II Lecture 14, Oct 19, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Top Three Layers Session Layer Presentation Layer Application Layer.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
EECS122 - UCB 1 CS 194: Distributed Systems Communication Protocols, RPC Computer Science Division Department of Electrical Engineering and Computer Sciences.
Process-to-Process Delivery:
1 Transport Layer Computer Networks. 2 Where are we?
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 8 Fault.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
1 Distributed Systems Fault Tolerance Chapter 8. 2 Course/Slides Credits Note: all course presentations are based on those developed by Andrew S. Tanenbaum.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 TCP III - Error Control TCP Error Control. 2 ARQ Error Control Two types of errors: –Lost packets –Damaged packets Most Error Control techniques are.
Data Link and Flow Control Networks and Protocols Prepared by: TGK First Prepared on: Last Modified on: Quality checked by: Copyright 2009 Asia Pacific.
Fault Tolerance. Basic Concepts Availability The system is ready to work immediately Reliability The system can run continuously Safety When the system.
Reliable Communication Smita Hiremath CSC Reliable Client-Server Communication Point-to-Point communication Established by TCP Masks omission failure,
- Manvitha Potluri. Client-Server Communication It can be performed in two ways 1. Client-server communication using TCP 2. Client-server communication.
Reliable Client-Server Communication. Reliable Communication So far: Concentrated on process resilience (by means of process groups). What about reliable.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Distributed Systems CS Fault Tolerance- Part II Lecture 18, Nov 19, 2012 Majd F. Sakr and Mohammad Hammoud 1.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
1 CHAPTER 5 Fault Tolerance Chapter 5-- Fault Tolerance.
Fault Tolerance CSCI 4780/6780. RPC Semantics in Presence of Failures 5 types of exceptions Client cannot locate server Request to server is lost Server.
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).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
DATA LINK CONTROL. DATA LINK LAYER RESPONSIBILTIES  FRAMING  ERROR CONTROL  FLOW CONTROL.
Data Link Layer.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lec # 15.
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Fault Tolerance Chap 7.
Computer Communication & Networks
TCP - Part II.
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Reliable Transmission
Data Link Layer Flow Control.
Chapter 11 Data Link Control
“Request /Reply Communication”
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Process-to-Process Delivery, TCP and UDP protocols
Chapter 3 The Data Link Layer
CMPT 371 Data Communications and Networking
PART 5 Transport Layer Computer Networks.
6 Transport Layer Computer Networks Tutun Juhana
Chapter 6: Transport Layer (Part I)
Congestion Control, Internet transport protocols: udp
Chapter 10 Data Link Control
TCP Sequence Number Plots
Flow and Error Control.
DISTRIBUTED COMPUTING
Outline Announcements Fault Tolerance.
Process-to-Process Delivery:
Remote Procedure Call (RPC)
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Distributed Systems CS
CS4470 Computer Networking Protocols
Remote Procedure Call (invocation) RPC
PART 5 Transport Layer.
8: Principles of Reliable Data Transfer
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 4 Peer-to-Peer Protocols and Data Link Layer
Process-to-Process Delivery: UDP, TCP
Abstractions for Fault Tolerance
Last Class: Communication in Distributed Systems
Error Checking continued
Communication.
Transport Layer 9/22/2019.
Presentation transcript:

Reliable Client-Server Communication PRESENTED BY: SRIJA REDDY KASAM

Client-Server Communication It can be performed in two ways 1. Client-server communication using TCP 2. Client-server communication using RPC

A communication channel may exhibit crash, omission, timing, and/or arbitrary failures. In general , we focus on masking crash and omission failures.

Point –to –Point communication using TCP A reliable point-to-point communication can be established by using TCP protocol. TCP masks omission failures. TCP does not mask crash failures.

Communication using RPC RPC- Remote procedure calls The goal of RPC is to hide communication by making remote procedure calls that look just like local ones. The RPC mechanism works well as long as both the client and server function perfectly.

There are 5 classes of failures in RPC The client unable to locate server. (so no request can be sent.) The request message from client to server is lost.(so no response is returned by the server to the waiting client.) The reply message from the server to the client is lost.(the service has completed, but the results never arrive at the client) The server crashes after receiving a request.(and the service request is left acknowledged, but undone.) The client crashes after sending a request.(and the server sends a reply to a newly-restarted client that may not be expecting it.)

1. Client unable to locate server Problem- When server goes down The RPC system informs the client of the failure Solution- error raise an exception Java- division by zero C- signal handlers

2. Request message from client to server is lost. The operating system starts a timer when the stub is generated and sends a request. If response is not received before timer expires, then a new request is sent. Lost message – works fine on retransmission. If request is not lost, we should make sure server knows that its a retransmission.

3.Reply message from server to the client is lost. Some messages can be retransmitted any number of times without any loss. Some retransmissions cause severe loss. Solution- client assigns sequence number on requests made by client. So server has to maintain the sequence number while sending the reply.

4. Server crashes after receiving request The client cannot tell if the crash occurred before or after the request is carried out

Methods involved Remote operation: print some text and (when done) send a completion message. Three events that can happen at the server: Send the completion message (M), Print the text (P), Crash (C).

. These three events can occur in six different orderings: M →P →C: A crash occurs after sending the completion message and printing the text. M →C (→P): A crash happens after sending the completion message, but before the text could be printed. P →M →C: A crash occurs after sending the completion message and printing the text. P→C(→M): The text printed, after which a crash occurs before the completion message could be sent. C (→P →M): A crash happens before the server could do anything. C (→M →P): A crash happens before the server could do anything.

Strategies to be followed There are four strategies 1. Never- client will never issue a request at the risk of text not being printed. 2. Always- It can reissue a request but results in printing twice. 3. When not ack - client decides to reissue request to server when there is no acknowledgement that the request is sent. 4. When ack - request is retransmitted. Another technique is the inclusion of additional bits in a retransmission to identify it as such to the server.

5 . Client crashes after sending request When a client crashes, and when an ‘old’ reply arrives, such a reply is known as an orphan. Four orphan solutions have been proposed: extermination (the orphan is simply killed-off). reincarnation (each client session has an epoch associated with it, making orphans easy to spot). gentle reincarnation (when a new epoch is identified, an attempt is made to locate a requests owner, otherwise the orphan is killed). expiration (if the RPC cannot be completed within a standard amount of time, it is assumed to have expired).

CONCLUSION Techniques for reliable communication – Use redundant bits to detect bit errors in packets – Use sequence numbers to detect packet loss – Recover from corrupted/lost packets using acknowledgements and retransmissions