Introduction to Computer Networks

Slides:



Advertisements
Similar presentations
CSCI-1680 RPC and Data Representation Rodrigo Fonseca.
Advertisements

Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Spring 2002CS 4611 Remote Procedure Call Outline Protocol Stack Presentation Formatting.
Spring Remote Procedure Call (5.3) Outline Protocol Stack Presentation Formatting.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Computing Systems 15, 2015 Next up Client-server model RPC Mutual exclusion.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
CS6223: Distributed Systems Remote Procedure Call (RPC)
1 Remote Procedure Call Outline Protocol Stack Presentation Formatting.
Distributed Systems Lecture #3: Remote Communication.
CS533 - Concepts of Operating Systems 1 Remote Procedure Calls - Alan West.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
CS 582 / CMPE 481 Distributed Systems Communications (cont.)
CSE331: Introduction to Networks and Security Lecture 11 Fall 2002.
End-to-End Data Outline Presentation Formatting Data Compression.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
CSCI-1680 RPC and Data Representation Rodrigo Fonseca.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Presentation Services  need for a presentation services  ASN.1  declaring data type  encoding data types  implementation issues  reading: text, section.
Communication Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
1Spring 2003, COM1337/3501 Lecture 5: End-to-End Protocols Textbook: Computer Networks: A Systems Approach, L. Peterson, B. Davie, Morgan Kaufmann Chapter.
Chapter 4: Interprocess Communication‏ Pages
Chapter 5 : End-to-End (Transport) Protocols Summary of underlying best-effort network capabilities (host-host) –drops packets or datagrams –re-orders.
Politecnico di Milano © 2001 William Fornaciari Operating Systems R P C Remote Procedure Call Lecturer: William Fornaciari Politecnico di Milano
Spring 2006CS 3321 Remote Procedure Call Outline Protocol Stack Presentation Formatting.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
CSE 331: Introduction to Networks and Security Fall 2000 Instructor: Carl A. Gunter Slide Set 5.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Remote Procedure CallCS-502 Fall Remote Procedure Call (continued) CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System.
Remote Procedure Call RPC
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 22 – April 1, 2010.
Manish Kumar,MSRITSoftware Architecture1 Remote procedure call Client/server architecture.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
1 Remote Procedure Calls External Data Representation (Ch 19) RPC Concept (Ch 20)
Spring 2000CS 4611 Remote Procedure Call Outline Protocol Stack Presentation Formatting.
1 COM Chapter 7 End-To-End Data 3 What Do We Do With The Data? From the network’s perspective, applications send messages to one another and these.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Topic 3: Remote Invocation Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Presentation Services
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
CSE 486/586 Distributed Systems Remote Procedure Call
Remote Procedure Call present by :Enas Alkhoshi
CMSC621: Advanced Operating Systems Advanced Operating Systems
SACK TCP (RFC 2018).
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
7. End-to-end data Rocky K. C. Chang Department of Computing
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Advanced Computer Networks
Remote Procedure Call (RPC) Neil Tang 11/26/2008
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
University of Houston Remote Procedure Call Datacom II Lecture 6
XDR External Data Representation
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
The University of Adelaide, School of Computer Science
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Introduction to Computer Networks Chapter 5-2: Remote Procedure Call (RPC) University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani

Outline Request and reply paradigm. Protocol Stack Presentation Formatting

RPC Timeline Process to process service. It is more than UDP. Client Server Process to process service. Request Blocked Blocked Computing It is more than UDP. Establishing TCP is expensive. RPC sounds the solution. RPC is a foundation for distributed systems based on the local Procedure call. We are dealing with network problems. It is more complex. Two computers may have different architecutres. Reply Blocked

RCP Components Protocol Stack Stubs BLAST: fragments and reassembles large messages CHAN: synchronizes request and reply messages SELECT: dispatches request to the correct process Stubs Caller (client) Client stub RPC protocol Return value Arguments Reply Request Callee (server) Server

Bulk Transfer (BLAST) Support large messages (SAR). Sender Receiver Fragment 1 Fragment 2 Fragment 3 Fragment 5 Fragment 4 Fragment 6 SRR Support large messages (SAR). Unlike AAL and IP, tries to recover from lost fragments (no guarantee). A timer DONE. Strategy selective retransmission (SRR) aka partial acknowledgements

BLAST Details Sender: after sending all fragments, set timer DONE if receive SRR, send missing fragments and reset DONE if timer DONE expires, free fragments, give up. The idea is to send lost part instead of sending the whole fragment.

BLAST Details (cont) Receiver: when first fragments arrives, set timer LAST_FRAG when all fragments present, reassemble and pass up four exceptional conditions: if last fragment arrives but message not complete send SRR and set timer RETRY if timer LAST_FRAG expires if timer RETRY expires for first or second time if timer RETRY expires a third time give up and free partial message

BLAST Header Format MID must protect against wrap around, How big is it? TYPE = DATA or SRR ProtNum is the high level protocol number (DeMux). Length is only for Data NumFrags indicates number of fragments in this message FragMask distinguishes among fragments, it is a bitmap. if Type=DATA, identifies this fragment if Type=SRR, identifies missing fragments, 1 means fragment arrived, 0 means missing.

Request/Reply (CHAN) Guarantees message delivery Only one message transaction at time. Synchronizes client with server Supports at-most-once semantics Simple case Implicit Acks Client Server Request ACK Reply Client Server Request 1 Request 2 Reply 2 Reply 1 …

CHAN Details Lost message (request, reply, or ACK) set RETRANSMIT timer use message id (MID) field to distinguish duplicates Slow (long running) server client periodically sends “are you alive” probe, or server periodically sends “I’m alive” notice Want to support multiple outstanding calls use channel id (CID) field to distinguish Machines crash and reboot use boot id (BID) field to distinguish

CHAN Header Format The pair (BID, MID) specify a message. 16 31 TYPE = REQ, REP, ACK or PROBE ProtNum is the high level protocol number (DeMux). Length is only for Data Why not just one bit for MID? The pair (BID, MID) specify a message. type CID MID BID Length ProtNum Data Timers: RETRANSMIT (both sides). PROBE How much application know about success of operation? Asynchronous and synchronous.

Dispatcher (SELECT) Address Space for Procedures Dispatch to appropriate procedure Synchronous counterpart to UDP Caller SELECT CHAN xCall xDemux xPush Callee xCallDemux Server Client Why SELECT? To have different address space Create concurrency. Address Space for Procedures flat: unique id for each possible procedure hierarchical: program + procedure number

Simple RPC Stack BLAST ETH IP SELECT CHAN SAR is implemented in BLAST since its operation is superior to IP’s. This is not standard!!.

SunRPC IP implements BLAST-equivalent except no selective retransmit SunRPC implements CHAN-equivalent except not at-most-once UDP + SunRPC implement SELECT-equivalent UDP dispatches to program (ports bound to programs) SunRPC dispatches to procedure within program

SunRPC Header Format XID (transaction id) is similar to CHAN’s MID Server does not remember last XID it serviced Problem if client retransmits request while reply is in transit Data MsgType = CALL XID RPCVersion = 2 Program Version Procedure Credentials (variable) Verifier (variable) 31 MsgType = REPLY Status = ACCEPTED

Presentation Formatting Marshalling (encoding) application data into messages Unmarshalling (decoding) messages into application data Data types we consider integers floats strings arrays structs Application data Presentation encoding decoding Message … Types of data we do not consider images video multimedia documents

Difficulties Representation of base types floating point: IEEE 754 versus non-standard integer: big-endian versus little-endian (e.g., 34,677,374) Compiler layout of structures (126) (34) (17) (2) 00000010 Big- endian Little- High address Low 1

Taxonomy Data types Conversion Strategy base types (e.g., ints, floats); must convert flat types (e.g., structures, arrays); must pack complex types (e.g., pointers); must linearize Conversion Strategy canonical intermediate form receiver-makes-right (an N x N solution) Application data structure Marshaller

Taxonomy (cont) Tagged versus untagged data Stubs compiled interpreted type = INT len = 4 value = 417892 Call P Client stub RPC Arguments Marshalled arguments Interface descriptor for Procedure P Stub compiler Message Specification P Server Code

eXternal Data Representation (XDR) Defined by Sun for use with SunRPC C type system (without function pointers) Canonical intermediate form Untagged (except array length) Compiled stubs

xdr_item(XDR *xdrs, struct item *ptr) { #define MAXNAME 256; #define MAXLIST 100; struct item { int count; char name[MAXNAME]; int list[MAXLIST]; }; bool_t xdr_item(XDR *xdrs, struct item *ptr) { return(xdr_int(xdrs, &ptr->count) && xdr_string(xdrs, &ptr->name, MAXNAME) && xdr_array(xdrs, &ptr->list, &ptr->count, MAXLIST, sizeof(int), xdr_int)); } Count Name J O 3 7 H N S List 4 9 2 6 5 8 1

Abstract Syntax Notation One (ASN-1) An ISO standard Essentially the C type system Canonical intermediate form Tagged Compiled or interpretted stubs BER: Basic Encoding Rules (tag, length, value) value type length

Network Data Representation (NDR) Defined by DCE Essentially the C type system Receiver-makes-right (architecture tag) Individual data items untagged Compiled stubs from IDL 4-byte architecture tag IntegerRep 0 = big-endian 1 = little-endian CharRep 0 = ASCII 1 = EBCDIC FloatRep 0 = IEEE 754 1 = VAX 2 = Cray 3 = IBM