ECE291 Computer Engineering II Lecture 23 Dr. Zbigniew Kalbarczyk University of Illinois at Urbana- Champaign.

Slides:



Advertisements
Similar presentations
DISTRIBUTED SYSTEMS II FAULT-TOLERANT BROADCAST Prof Philippas Tsigas Distributed Computing and Systems Research Group.
Advertisements

CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Reliable Multicast Steve Ko Computer Sciences and Engineering University at Buffalo.
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Remote Procedure Call (RPC)
CCNA – Network Fundamentals
Intermediate TCP/IP TCP Operation.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Reliability on Web Services Presented by Pat Chan 17/10/2005.
Lab 2 Group Communication Andreas Larsson
Distributed Systems Fall 2010 Replication Fall 20105DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
CS 582 / CMPE 481 Distributed Systems Communications.
Socket Programming.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
Group Communication Phuong Hoai Ha & Yi Zhang Introduction to Lab. assignments March 24 th, 2004.
OSI Model MIS 416 – Module II Spring 2002 Networking and Computer Security.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Ordered Communication. Define guarantees about the order of deliveries inside group of processes Type of ordering: Deliveries respect the FIFO ordering.
Aran Bergman, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Recitation 5: Reliable.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
COMPUTER NETWORKS.
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:
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
CH2 System models.
Chapter Three Network Protocols By JD McGuire ARP Address Resolution Protocol Address Resolution Protocol The core protocol in the TCP/IP suite that.
CDP ECE Spring 2000 ECE 291 Spring 2000 Lecture 18: Networking Constantine D. Polychronopoulos Office: 463 CSRL.
Lecture 4 Title: Network Components and Types By: Mr Hashem Alaidaros MIS 101.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
TCP/IP TCP/IP LAYERED PROTOCOL TCP/IP'S APPLICATION LAYER TRANSPORT LAYER NETWORK LAYER NETWORK ACCESS LAYER (DATA LINK LAYER)
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
Reliable Communication in the Presence of Failures Based on the paper by: Kenneth Birman and Thomas A. Joseph Cesar Talledo COEN 317 Fall 05.
Lab 2 Group Communication Farnaz Moradi Based on slides by Andreas Larsson 2012.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Farnaz Moradi Based on slides by Andreas Larsson 2013.
CSE 6590 Department of Computer Science & Engineering York University 111/9/ :26 AM.
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”
Multimedia and Networks. Protocols (rules) Rules governing the exchange of data over networks Conceptually organized into stacked layers – Application-oriented.
Replication (1). Topics r Why Replication? r System Model r Consistency Models – How do we reason about the consistency of the “global state”? m Data-centric.
Networking Basics CCNA 1 Chapter 11.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
1 ECE453 - Introduction to Computer Networks Lecture 1: Introduction.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Replication (1). Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
Individual Project 1 Sarah Pritchard. Fran, a customer of your company, would like to visit your company’s website from her home computer… How does your.
The Client Server Model And Software Design
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
INTERNET AND PROTOCOLS For more notes and topics visit: eITnotes.com.
Fault-Tolerant Broadcast Terminology: broadcast(m) a process broadcasts a message to the others deliver(m) a process delivers a message to itself 1.
Lecture 12-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) October 4, 2012 Lecture 12 Mutual Exclusion.
Chapter 16 - TCP: Software For Reliable Communication Introduction A Packet Switching System Can Be Overrun (merging highways) TCP Helps IP Guarantee Delivery.
1 Network Communications A Brief Introduction. 2 Network Communications.
Process-to-Process Delivery:
Reliable multicast Tolerates process crashes. The additional requirements are: Only correct processes will receive multicasts from all correct processes.
Chapter 16 – Networking Outline 16.1 Introduction
Chapter 3 Internet Applications and Network Programming
TCP/IP Protocol Suite: Review
EEC 688/788 Secure and Dependable Computing
Introduction and Overview
Internet Applications & Programming
Computer Networks Protocols
Presentation transcript:

ECE291 Computer Engineering II Lecture 23 Dr. Zbigniew Kalbarczyk University of Illinois at Urbana- Champaign

Z. KalbarczykECE291 Outline Networking Broadcast vs. unicast Reliable broadcast NetBios

Z. KalbarczykECE291 What is Networking? The means by which multiple computers communicate Primary example : the Internet Others –Telephone network –ECE291 lab –Home Automation (eToasters!)

Z. KalbarczykECE291 A Simple View Send –A program takes a piece of data and information about its destination and inserts them in the network Transmit –The network relays the program’s data to the specified destination(s) Receive –An application removes the data from the network (and uses it)

Z. KalbarczykECE291 How is Data Transported? Data travels by –Wire –Optics –Air (wireless) Palm VII Datais Packetized...

Z. KalbarczykECE291 Delivery: Broadcast SOURCE DATA DATA IN NETWORK

Z. KalbarczykECE291 Delivery: Unicast A SOURCE DATA DATA FOR ‘A’ Computer A A

Z. KalbarczykECE291 Delivery: Broadcast Routing SOURCE DATA

Z. KalbarczykECE291 Delivery: Broadcast Routing SOURCE

Z. KalbarczykECE291 Delivery: Broadcast Routing SOURCE

Z. KalbarczykECE291 Delivery: Broadcast Routing SOURCE

Z. KalbarczykECE291 Delivery: Unicast Routing SOURCE DATA A Computer A A

Z. KalbarczykECE291 Delivery: Unicast Routing SOURCE Computer A AA

Z. KalbarczykECE291 Delivery: Unicast Routing SOURCE A Computer A A

Z. KalbarczykECE291 Delivery: Unicast Routing SOURCE A Computer A

Z. KalbarczykECE291 Reliable Communications Transport Protocols Networking is a service provided to applications. What guarantees does this service provide? Low-level message-passing technologies – Datagram (UDP) : Few guarantees Packets may be reordered, or lost! –Remote procedure call (RPC) –Connection-oriented (TCP) Reliable connection between two endpoints Lost packets are retransmitted To provide strong guarantees on message delivery we need high level protocols, such as reliable broadcast

Z. KalbarczykECE291 Broadcast Protocols Cooperating processes in networked /distributed systems often communicate via broadcast A failure during a broadcast can lead to inconsistency and can compromise the integrity of the distributed system Need for supporting reliable broadcast protocols that provide strong guarantee on message delivery Example protocols include –reliable broadcast – FIFO broadcast –casual broadcast –atomic broadcast

Z. KalbarczykECE291 Reliable Broadcast Reliable broadcast guarantees the following properties: –Validity: if a correct process broadcasts a message m, then all correct processes eventually deliver m (all correct processes agree on the set of messages they deliver) –Agreement: if a correct process delivers a message m, then all correct processes eventually deliver m (all messages broadcast by correct processes are delivered), –Integrity: for any message m, every correct process delivers m at most once and only if m was previously broadcast by a sender (no spurious messages are ever delivered) Reliable broadcast imposes no restrictions on the order of messages delivery

Z. KalbarczykECE291 FIFO Broadcast FIFO Broadcast is a Reliable Broadcast that satisfies the following requirement on message delivery –FIFO order: if a process broadcasts a message m before it broadcasts a message m’, then no correct process delivers m’, unless it has previously delivered m (messages send by the same sender are delivered in the order they were broadcast)

Z. KalbarczykECE291 FIFO Broadcast – Issues The FIFO Order is not sufficient if a message m depends on messages that the sender of m delivered before broadcasting m, e.g., let consider a network news application where users distribute their articles with FIFO broadcast –user_1 broadcast an article –user_2 delivers that article and broadcasts a response that can only be properly handle by a user who has the original article –user_3 delivers user_2’s response before delivering the original article from user_1 and consequently misinterprets the response Causal broadcast prevents the above problem by introducing the notion of a message depending on another one and ensuring that a message is not delivered until all the messages it depends on have been delivered

Z. KalbarczykECE291 Causal Broadcast Causal Broadcast is a Reliable Broadcast that satisfies the following requirement on message delivery –Causal Order: if the broadcast of message m causally precedes the broadcast of a message m’, then no correct process delivers m’ unless it has previously delivered m

Z. KalbarczykECE291 Causal Broadcast -Issues Causal Broadcast does not impose any order on not causally related messages –consider a replicated database with two copies of a bank account client_acnt residing at different sites. Initially client_account has an amount of $1000. –A user deposits $150 triggering a broadcast of msg1 = {add $150 to client_acnt } to the two copies of client_acnt. –At the same time, at other site, the bank initiates a broadcast of msg2 = {add 8% interest to client_acnt } –The two broadcasts are not causally related, the Causal Broadcast allows the two copies of client_acnt to deliver these updates in different order and creates inconsistency in the database Atomic Broadcast prevents such problem by providing strong message ordering or total order

Z. KalbarczykECE291 Atomic Broadcast Atomic Broadcast is a Reliable Broadcast that satisfies the following condition –Total Order: if correct processes r and s both deliver messages m and m’, then r delivers m before m’ if and only if s delivers m before m’ (messages sent concurrently are delivered in identical order to the selected destinations)

Z. KalbarczykECE291 Broadcast Protocols Implementation Issues Inconsistency and contamination –suppose that a process p fails by omitting to deliver a message that is delivered by all the correct processes –state of p might be inconsistent with other correct processes –p continues to execute and p broadcasts a message m that is delivered by all the correct processes –m might be corrupted because it reflects p’s erroneous state –correct processes get contaminated by incorporating p’s inconsistency into their own state. Observation: Broadcast can lead to the corruption of the entire system

Z. KalbarczykECE291 Broadcast Protocols Implementation Issues (cont.) To prevent contamination a process can refuse to deliver messages from processes whose previous deliveries are not compatible with its own –a message must carry additional information, so that the receiving process can determine whether it is safe to deliver the message To prevent inconsistency requires techniques that ensure that the faulty process will immediately stop to execute –Processes must be self-checking

Z. KalbarczykECE291 Programming Models Client-Server Model –Server is centralized resource –Clients are short-lived –Unicast messages between server and each client Peer Model –Resources are distributed and shared between all programs –Programs communicate through broadcast or multicast

Z. KalbarczykECE291 PC Networking Network is Ethernet –Invented in 1973 by Bob Metcalf –Metcalf was at Xerox PARC, which also gave birth to the mouse and the graphical user interface –A broadcast medium Connects to the PC through a adapter card in the I/O bus (PCI)

Z. KalbarczykECE291 PC Networking (2) To send a message, provide necessary data to adapter through software network driver When adapter receives a message, an interrupt is triggered which launches the network driver Driver executes user program’s procedure (a callback) Interface is called NetBIOS

Z. KalbarczykECE291 NetBIOS Networking service for DOS/Win For a Local Area Network (LAN) –Provides global name space –Broadcast, multicast, unicast, plus reliable connection Use it through interrupt 05Ch Network Control Block (NCB) –Basic NetBIOS data structure

Z. KalbarczykECE291 NetBIOS (2) How to receive messages –Blocking function: waits for an event –Callback function: NetBIOS calls a registered procedure, acts like an interrupt Names –16 character identifiers –Local name: unique across the LAN –Group name: shared by multiple machines (multicast)

Z. KalbarczykECE291 NetBIOS: pseudo examples Broad/Multicast Datagrams –Sender & receiver ADD NAME –LOOP Sender SENDS broadcast datagram Receiver RECEIVES datagram –Sender and receiver REMOVE NAME Unicast Connection –Sender & receiver ADD NAME –Receiver LISTENS –Sender CALLS (connection est’d) –LOOP Sender SENDS Receiver RECEIVES –Sender or receiver HANGUP (connection terminated) –Sender & receiver REMOVE NAME

Z. KalbarczykECE291 NetBIOS: the Code Callback routine handles incoming messages Actually called from NetBIOS interrupt

Z. KalbarczykECE291 NetBIOS: NetLIB NetLIB is a library to help you use NetBIOS Three procedures plus the callback Must also set grp_name and my_name

Z. KalbarczykECE291 References For more NetBIOS and NetLIB information, see the web class resources under “Networking” Want to learn more? –ECE/CS 328: High-level networking and distributed systems –ECE/CS 338: Lower-level networking