DISTRIBUTED SYSTEM
CHAPTER 10 : CASE STUDY
LAB WORK SOLUTION- DISTRIBUTED SYSTEM
DISTRIBUTED SYSTEM -BCA -ALL SLIDES
MCQ- DISTRIBUTED SYSTEM

RELIABLE CLIENT-SERVER COMMUNICATION

Reliable client-server communication is crucial in distributed systems to ensure that messages are delivered accurately and in a timely manner. Achieving reliability in communication involves addressing issues like message loss, duplication, delays, and ensuring that both the client and server can handle failures gracefully.

Techniques for Reliable Client-Server Communication

  1. Acknowledgments and Retransmissions:

    • Acknowledgments (ACKs): The receiver sends an acknowledgment back to the sender to confirm receipt of a message.
      • Example: TCP uses ACKs to ensure data has been received.
    • Retransmissions: If the sender does not receive an acknowledgment within a specified timeout period, it retransmits the message.
      • Example: TCP retransmits lost packets based on the timeout mechanism.
  2. Sequence Numbers:

    • Ordered Delivery: Sequence numbers are used to ensure messages are processed in the correct order.
      • Example: TCP assigns sequence numbers to each byte transmitted to ensure ordered delivery.
    • Duplicate Detection: Sequence numbers help detect and discard duplicate messages.
      • Example: Application-level protocols can use sequence numbers to detect duplicates.
  3. Timeouts and Retries:

    • Timeout Mechanisms: Setting time limits for receiving acknowledgments or responses to detect and handle lost messages.
      • Example: HTTP clients often implement timeouts to handle non-responsive servers.
    • Retry Policies: Implementing strategies for retrying failed requests with exponential backoff to avoid overwhelming the server.
      • Example: Exponential backoff in API request retries.
  4. Error Detection and Correction:

    • Checksums: Adding checksums to messages to detect corruption during transmission.
      • Example: TCP uses checksums to verify data integrity.
    • Error Correction Codes: Employing techniques to correct errors in transmitted data.
      • Example: Forward error correction (FEC) codes in network protocols.
  5. Flow Control:

    • Rate Limiting: Controlling the rate of data transmission to prevent network congestion and ensure smooth communication.
      • Example: TCP uses flow control mechanisms like window sizes to manage data flow.
    • Backpressure: Mechanisms where the receiver can signal the sender to slow down or stop sending data temporarily.
      • Example: TCP window size adjustment.