Verteilte Systeme (Distributed Systems)

Similar documents
Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Need For Protocol Architecture

Need For Protocol Architecture

Network Layers. Standardization Cruelty 2009/08/12. (C) Herbert Haas

5105: BHARATHIDASAN ENGINEERING COLLEGE NATTARMPALLI UNIT I FUNDAMENTALS AND LINK LAYER PART A

Defining Networks with the OSI Model. Module 2

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

Lecture-4. TCP/IP-Overview:

Networking and Internetworking 1

Copyleft 2005, Binnur Kurt. Objectives

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

TCP/IP THE TCP/IP ARCHITECTURE

Communication. Distributed Systems Santa Clara University 2016

Chapter 2 Network Models 2.1

ET4254 Communications and Networking 1

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

TSIN02 - Internetworking

Layering in Networked computing. OSI Model TCP/IP Model Protocols at each layer

DISTRIBUTED COMPUTER SYSTEMS

TSIN02 - Internetworking

OSI Transport Layer. objectives

Networking Applications

Chapter 4 Communication

CS61C Machine Structures Lecture 37 Networks. No Machine is an Island!

Chapter 2 Network Models 2.1

Data & Computer Communication

Chapter 16 Networking

Chapter 7. Local Area Network Communications Protocols

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems

Introduction to Internetworking

CS3600 SYSTEMS AND NETWORKS

Computer Networks (Introduction to TCP/IP Protocols)

Communicating over the Network

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

The Client Server Model and Software Design

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322

Review of Important Networking Concepts

ISO/OSI Model and Collision Domain NETWORK INFRASTRUCTURES NETKIT - LECTURE 1 MANUEL CAMPO, MARCO SPAZIANI

ECE4110 Internetwork Programming. Introduction and Overview

ECE 650 Systems Programming & Engineering. Spring 2018

Lecture 11: Networks & Networking

Introduction to TCP/IP networking

TSIN02 - Internetworking

cs144 Midterm Review Fall 2010

Chapter 12 Network Protocols

CS-461 Internetworking. Dr. Mohamed Aboutabl

Lecture 8: February 19

Communication Networks

Network and Security: Introduction

Chapter 09 Network Protocols

System Programming. Introduction to computer networks

Networking Fundamentals

Networks: Access Management

Internetwork Protocols

TSIN02 - Internetworking

The Internet Protocol (IP)

Verteilte Systeme (Distributed Systems)

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

TCP/IP Protocol Suite and IP Addressing

Introduction to Open System Interconnection Reference Model

IPC. Communication. Layered Protocols. Layered Protocols (1) Data Link Layer. Layered Protocols (2)

CPEG514 Advanced Computer Networks. Atef Abu Salim University of Nizwa Spring 2013/2014

Operating Systems and. Computer Networks. Introduction to Computer Networks. Operating Systems and

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space provided.

OSI and TCP/IP Models

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

The Internet. 9.1 Introduction. The Internet is a global network that supports a variety of interpersonal and interactive multimedia applications.

BABU MADHAV INSTITUTE OF INFORMATION TECHNOLOGY, UTU 2017

TCP/IP Networking Basics

Internet. Organization Addresses TCP/IP Protocol stack Forwarding. 1. Use of a globally unique address space based on Internet Addresses

Network Reference Models

Part VI. Appendixes. Appendix A OSI Model and Internet Protocols Appendix B About the CD

Data Communication Prof. A. Pal Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 34 TCP/ IP I

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Network Model. Why a Layered Model? All People Seem To Need Data Processing

The TCP Protocol Stack

Lecture 3 Protocol Stacks and Layering

INSTITUTE OF AERONAUTICAL ENGINEERING Autonomous Dundigal, Hyderabad

Networking and Internetworking 1

Layer 4: UDP, TCP, and others. based on Chapter 9 of CompTIA Network+ Exam Guide, 4th ed., Mike Meyers

CS 5523 Operating Systems: Network

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

OSI Model. Teran Subasinghe MBCS, Bsc.(Hons) in Computer Science - University of Greenwich, UK

CHAPTER - 4 REMOTE COMMUNICATION

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

CS 4390 Computer Networks. Transport Services and Protocols

CS 428/528 Computer Networks Lecture 01. Yan Wang

Computer Communication & Networks / Data Communication & Computer Networks Week # 03

SAI/ST course Distributed Systems

CSci Introduction to Distributed Systems. Communication: RPC

Communication. Overview

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies

QUIZ: Longest Matching Prefix

Introduction to Networks

Introduction to computer networking

Transcription:

Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/

Lecture 2: Communication (Part 1) Networking Principles Internet: Ethernet and TCP/IP Middleware and adaptivity Remote procedure call

Communication requirements A distributed application consists of many entities (modules, objects, ) that need to communicate Different applications require different properties from the communication (QoS) Example requirements: Performance (latency and/or throughput) Reliability - Continuous media 1-1 or 1-n or? - Real-time Consistent latency - Security 4

Communication models Multiprocessors: shared memory Multicomputers: message passing Synchronization in shared memory: Semaphores (atomic mutex variable) Monitors an abstract data type whose operations may be invoked by concurrent threads; different invocations are synchronized Synchronization in multicomputers: blocking in message passing 5

Communication models Communication system is responsible for providing communication (service) It consists of mechanisms (both hardware and software) for delivery of information from one entity to another Always based on low-level message passing! An entity is an endpoint of communication We need to identify (name) endpoints 6

How To Connect All Locations? F A E? B D C Manfred Lindner 7

Any-to-Any Topology? F A E B D C Manfred Lindner 8

Networking Techniques any-to-any topology is very expensive many lines are required and hence large number of transmission equipment (like modems, DSUs, line repeaters, etc.) necessary many physical communication ports are required in devices to reduce costs synchronous or asynchronous time division multiplexing principles can be used circuit switching based on synchronous TDM packet switching based on asynchronous (statistical) TDM Manfred Lindner 9

Idea of Layering and Services because communication between systems can be a very complex task divide task of communication in multiple sub-tasks so called layers hence every layer implements only a part of the overall communication systems hierarchically organized each layer receives services from the layer below each layer serves for the layer above good for interoperability (needs standards) capsulated entities and interfaces but increases (local) complexity Manfred Lindner 11

ISO/OSI Reference Model where to define layers? group functions (services) together to allow changes in protocol, technology, and HW to utilize existing protocols and HW layering of the ISO/OSI Reference Model Open Systems Interconnection defines tasks and interactions of seven layers framework for development of communication standards system-internal implementation is out of the scope only external behavior of a system is defined by standards Manfred Lindner 14

ISO OSI 7 Layer Model Horizontal Communication Semantics service interface (SAP) 2-1 Encoding/Encryption Connections Messages Routing Vertical Communication Packets (frames) Bits Layers, interfaces, and protocols in the OSI model. 16

Encapsulation Header Data (payload) Trailer Possible header contents: Message number Message or header length Priority Checksum Source and destination address 19

Effect of Layered Protocols 2-2 A typical message as it appears on the network. 20

You Guess It... Practical models typically employ a different number of layers. Manfred Lindner 22

Lecture 2: Communication (Part 1) Networking Principles Internet: Ethernet and TCP/IP Middleware and adaptivity Remote procedure call

DoD 4-Layer Model (Internet) Process Layer Transport Layer Network Layer Data Link Layer TCP/UDP Segment" Datagram = Packet" "Frame" Process Layer Transport Layer Network Layer Data Link Layer Manfred Lindner 24

Internet Encapsulation HTML-Content (Webpage) This is what the user wants HTTP-Data HTTP Header This is what the application wants OSI Layer 7 TCP-Data TCP Header Will reach the target application OSI Layer 4 IP-Data IP Header Will reach the next host OSI Layer 3 Eth Trailer Ethernet-Data Eth Header Will reach the next machine same LAN OSI Layer 2 Manfred Lindner 25

Practical Encapsulation Ethernet Frame IP Packet HTML Webpage TCP Segment HTTP Message Manfred Lindner 26

A Practical Example Where is my destination network? Transport (TCP) Network (IP) What is my destination application? Port Number IP Address Just move this frame to the next NIC Link (Ethernet) Link (HDLC) Link (FDDI) IP Address Port Number MAC Address Simple or dummy Address MAC Address Netscape Browser Physical (Twisted Pair) Physical (Serial Line) Physical (Fiber Ring) Apache Webserver Manfred Lindner 30

IEEE 802 <-> OSI IEEE 802 OSI 802.1 Higher Layer Interface 802.2 Logical Link Control 2a Medium Access Control (MAC) 802.3 802.4 802.5 802.6 2b Data Link Layer 2 CSMA/ CD Token Bus Token Ring MAN DQDB Physical Layer 1 31

Principles of the Ethernet protocol Unique id for each node (MAC address) Distributed control local decision-making (increases scalability) Shared bus (reduces scalability) CSMA/CD: Carrier Sense Multiple Access Collision Detection 35

TCP/IP Protocol Suite Application FTP SMTP TELNET TFTP DNS BOOTP Presentation Session Transport Transmission Control Protocol (TCP) User Datagram Protocol (UDP) RIP OSPF Rou- ting- Prot. Network Link Physical Internet Protocol (IP) ICMP ARP RARP IP Transmission über Ethernet IEEE 802.x X.25 SLIP PPP RFC: 894 1042 1356 1055 1661 36

IP (Internet Protocol) principles RFC 791 Virtual network Packet switched (statistical TDM) Connectionless (datagram) Transmission via several networks (routing) Unreliable (order, loss) 38

IP Protocol specifies Addressing IP address: 32 bits (network id, host id) IPv6: 128 bits (RFC 2460, 1998) Must be unique for any node on the network (assigned by central authority) Packet format Max packet size: 64k bytes Mechanisms for forwarding and routing Based on network id, router sends packet to either local net or to a next router Fragmentation and Re-assembly Time to live (# hops) 39

IP routing using tables Network router/ gateway Network router/ gateway Network For network Route to 128.0.0.0 250.44.0.0... deliver directly 128.12.0.5 Remember that each packet has network id of destination 40

Router System A 6-7 System B 6-7 5 4 3 2 1 3 2 1... Transport -Protocol Router as Relais 3 2 1 Networkprotocol Networkprotocol 5 4 3 2 1 local Network 1 Network 2 42

TCP/UDP transport TCP provides a reliable connectionoriented service; full-duplex; bytestreams UDP provides an unreliable, connectionless service Both use the services of IP Address is a pair (IP address, port number) Defines 1024 well-known ports No multicast or broadcast 43

Connection-oriented vs -less One partner calls Other partner accepts call Connection is established Communication starts One party terminates communication by closing the connection Reliability v. setup cost Sender writes a letter Puts address of receiver on letter Delivers letter to post office Receiver receives letter (eventually?) 44

TCP principles RFC 793 Connection-oriented service on layer 4 Addressing between processes no routing! Reliable end-to-end transport of data between processes: error detection and recovery regarding order, loss, duplication, and flow control (buffering) Provides network transparency for application addressing is through ports (assigned by OS) 45

UDP principles RFC 768 Connectionless datagram service on layer 4 Enhances layer 3 by forwarding to layer 7 UDP addressing is through ports (assigned by OS) Not reliable with respect to loss of datagram (e.g. SNMP) Protocol implementation simple compared to TCP 46

Sockets and ports socket any port agreed port socket client Internet address = 138.37.94.248 message other ports server Internet address = 138.37.88.249 47

TCP Ports, Connections (3) Process needs to maintain several connections to other processes (e.g. client/server) several virtual connections via one port (multiplexing), distinguished through sockets End point = IP address + port number TCP connection = endpoints of both partners Programmer uses socket to utilize connection (i.e., socket represents connection to the programmer) 50

TCP Sockets, Connections (4) System A System B System C serverprocess clientprocess 1 clientprocess 2 port x...... port z... port v TCP TCP TCP socket (port x, 128.1.1.1 + port z, 128.1.1.2) socket (port x, 128.1.1.1 + port v, 128.1.1.3) IP (128.1.1.1) IP (128.1.1.2) IP (128.1.1.3) Net 128.1 51

Berkeley Sockets Connection-oriented communication pattern using sockets. 52

Assignment of port numbers Ports on each node have integer numbers Applications may request ports dynamically Lower integers (0-1023) are reserved for wellknown ports for server processes (e.g. time, rwho, telnet, http) (statically assigned) Thus, several and distinguishable connections to a server via a particular port 54

Three Way Handshake Unique initial values for sequence and acknowledgement numbers (synchronization for data transfer) Uses SYN and ACK flags plus respective sequence numbers 57

Data Transfer Positive acknowledgement: Each acknowledgement confirms the correctly (order!) received octets so far In case of a failure (packet order), the acknowledgement is suppressed until missing segment arrives, then explicit confirmation again Multiple acknowledgement: lost ACK is implicitly confirmed by next ACK (cumulative) Error correction: Timeout and re-transmission Duplicate correction required 58

Summary: Communication protocols Synchronous vs. asynchronous TDM (circuit switched vs. packet switched) Connection-oriented vs. connection-less (virtual path/call vs. datagram service) Reliable QoS vs. best-efforts Secure vs. insecure Synchronous vs. asynchronous message (blocking vs. non-blocking) Transient vs. persistent message passing Stateful vs. stateless 60

Lecture 2: Communication (Part 1) Networking Principles Internet: Ethernet and TCP/IP Middleware and adaptivity Remote procedure call

How Layer 5 sees the Network ES A ES B 4 Transport Pipe 4 Manfred Lindner 62

Above the transport layer? Typical enterprise applications consist of: 70-80% application infrastructure slight changes from app to app 20-30% core business logic different for every application Middleware provides run-time infrastructure for applications Middleware provides programming abstraction (and development tools) 63

Positioning Middleware 1-22 A distributed system organized as middleware. Note that the middleware layer extends over multiple machines. 64

Middleware Protocols 2-5 An adapted reference model for networked communication. 65

Middleware requirements Support transparency (with care) Support openness (with good cause) Provide means for scalability (if required) Support maintenance Life-cycle management of components Activation/de-activation policies Support interface definition Provide communication primitives Provide support for concurrency control Thread library 66

Middleware Services Communication facilities for access transparency Naming for location (and migration) transparency Persistence services or frameworks for persistence transparency (file, database) Distributed transactions for concurrency transparency; distributed locking Replication to assist failure transparency Security:Authentication, authorization mainly concern extra-functional (quality) properties 67

Middleware and Openness 1.23 In an open middleware-based distributed system, the protocols used by each middleware layer, and the interfaces they offer to applications, should be the same. 68

Middleware and Architectural Styles Layered architectures (OSI) Object-based architectures (and components) Data-centered architectures (file based, database, resourceful WS,...) Event-based architectures... and combinations thereof 69

Middleware Models Everything is a file: no difference between local/remote, communication via shared files Distributed file system: transparency for traditional files only (but not for processes) Distributed Documents (WWW) Remote procedure calls RPC Remote method invocation RMI Message-oriented Middleware MoM Streams and continuous media (video server) 70

Enhancing the flexibility of MW Interceptors Separation of concern: AOSD (modularization of cross-cutting concerns) Computational reflection: run-time modification Component-based design: Dynamic (re-)composition MW-Application interaction: plug-in, upcall,... Autonomic computing, self-* 71

Interceptors Using interceptors to handle remote-object invocations. 72

Control loop 74

Lecture 2: Communication (Part 1) Networking Principles Internet: Ethernet and TCP/IP Middleware and adaptivity Remote procedure call

Remote procedure call Explicit message exchange does not conceal communication (no transparency) Retain familiar procedural programming model (idea from 1984) Rely on system to bind calling and called procedure Use exception handling to deal with failures How to implement? How to use? 76

Conventional Procedure Call Count = read (fd, buf, nbytes) n a) Parameter passing in a local procedure call: the stack before the call to read b) The stack while the called procedure is active 78

Conventional Procedure Call (2) Parameter passing: Call by value Call by reference Call by copy/restore Library call of system calls Goal: make the RPC look like a local procedure call (transparent)! 79

Runtime structure of RPC client process server process Request client program Reply client stub procedure Communication module server stub procedure Communication module dispatcher service procedure Stub procedures marshal and unmarshal parameters. Client stub marshals input parameters (and unmarshals return paramter). Server stub unmarshals input parameters and marshals return parameter. 81

Client and Server Stubs Principle of RPC between a client and server program. 82

Passing Parameters (1) parameter marshaling 2-8 Steps involved in doing remote computation through RPC 84

Passing Parameters (2) Different machines and data types: Character encoding (ASCII, unicode) Integer format (one s/two s complement) Float, double formats Big/little endian (byte order/numbering) Passing reference parameters Local address useless on different machine Replace by copy/restore Optimize (eliminate one copy if applicable) OR: pass pointer and generate call-back function to reference arbitrary data structure (but relaxes transparency) 86

Parameter Specification, Stub Generation Caller and callee have to agree on: Message format Data representation Message exchange (protocol) (a) A procedure. (b) The corresponding message. 87

Interface Definition Language (IDL) An IDL supports the definition of procedures that may be called remotely It provides a set of universal types IDL compiler generates client and server header files and stubs Client code includes client header file and links to client stub Server code includes server header and links to server stub Caller and callee need not be in same language! 88

Summary Circuit vs. packet switched and Routing Connectionless (datagram) vs. connection-oriented (virtual path) ISO OSI reference model Ethernet for LAN IP is the dominant network layer UDP and TCP support direct programming of communication among processes Middleware and flexibility RPC supports inter-language calls across machines. Primary drawback: Passing complex referenced parameter structures 89