6/14/20151 System Models Chapter 2: Coulouris + Chapter notes from K. Birman’s that in turn was based on Professor Paul Francis notes, Cornell University.

Slides:



Advertisements
Similar presentations
IPv4 - The Internet Protocol Version 4
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
(4.4) Internet Protocols Layered approach to Internet Software 1.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)
Socket Programming.
Slides for Chapter 2: Architectural Models
Edition 3, © Addison-Wesley 2001
OCT Masters of Information Systems Management 1 Organizational Communications and Distributed Object Technologies Week 3: Models and Architectures.
OCT1 Principles From Chapter Two of “Distributed Systems Concepts and Design” Material on Lamport Clocks from “Distributed Systems Principles and Paradigms”
What Is TCP/IP? The large collection of networking protocols and services called TCP/IP denotes far more than the combination of the two key protocols.
Gursharan Singh Tatla Transport Layer 16-May
Lecture slides prepared for “Business Data Communications”, 7/e, by William Stallings and Tom Case, Chapter 8 “TCP/IP”.
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Exercises for Chapter 3: Networking.
Communications Recap Duncan Smeed. Introduction 1-2 Chapter 1: Introduction Our goal: get “feel” and terminology more depth, detail later in course.
IS473 Distributed Systems
Midterm Review - Network Layers. Computer 1Computer 2 2.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Exercises for Chapter 2: System models
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
University of the Western Cape Chapter 12: The Transport Layer.
Distributed System Models (Fundamental Model). Architectural Model Goal Reliability Manageability Adaptability Cost-effectiveness Service Layers Platform.
Chapter 2: System Models. Objectives To provide students with conceptual models to support their study of distributed systems. To motivate the study of.
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.
Chapter 2 Applications and Layered Architectures Sockets.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 2: Architectural.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Chapter 2: Architectural Models Jenhui Chen. Introduction zArchitectural models ySoftware layers ySystem architecture yVariations on the client-server.
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Prepared By: Md Rezaul Huda Reza
Chapter 2: System Models  Architectural Models  Fundamental Models.
Slides for Chapter 2: Architectural Models
S305 – Network Infrastructure Chapter 5 Network and Transport Layers.
Distributed systems (NET 422) Prepared by Dr. Naglaa Fathi Soliman Princess Nora Bint Abdulrahman University College of computer.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Distributed System Models
Midterm Review Chapter 1: Introduction Chapter 2: Application Layer
Exercises for Chapter 2: System models From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Pearson Education 2005.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Data Communications and Networks Chapter 6 – IP, UDP and TCP ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 System Models by Dr. Sarmad Sadik.
Process-to-Process Delivery:
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
MCA – 405 Elective –I (A) Java Programming & Technology
OSI Protocol Stack Given the post man exemple.
Layered Architectures
Understand the OSI Model Part 2
Slides for Chapter 2: Architectural Models
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Process-to-Process Delivery:
Slides for Chapter 2: Architectural Models
Slides for Chapter 3: Networking and Internetworking
Transport Protocols An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
CPEG514 Advanced Computer Networkst
System Models and Networking Chapter 2,3
System Models Chapter 2: Coulouris +
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
System Models Chapter 2: Coulouris +
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
System Models Bina Ramamurthy 9/7/2019 B.Ramamurthy.
Presentation transcript:

6/14/20151 System Models Chapter 2: Coulouris + Chapter notes from K. Birman’s that in turn was based on Professor Paul Francis notes, Cornell University

6/14/20152 Distributed system models  Model: “a simplified representation of a system or phenomenon, as in the sciences or economics, with any hypotheses required to describe the system or explain the phenomenon, often mathematically.”

6/14/20153 System Models  Architectural model defines the way in which the components of the system are placed and how they interact with one another and the way in which they are mapped onto the underlying network of computers.  Fundamental models: Interaction model deals with communication details among the components and their timing and performance details. Failure model gives specification of faults and defines reliable communication and correct processes. Security model specifies possible threats and defines the concept of secure channels.  We will discuss the various models at a high level in this discussion and will elaborate on each of these as we discuss other systems.

6/14/20154 Architectural Model  Concerned with placement of its parts and relationship among them.  Example: client-server model, peer-to-peer model  Abstracts the functions of the individual components.  Defines patterns for distribution of data and workload.  Defines patterns of communication among the components.  Example: Definition of server process, client process and peer process and protocols for communication among processes; definition client/server model and its variations.

6/14/20155 Software and hardware service layers in distributed systems

7 National Weather Service Web Site Data Aggregator RMI WeatherInfo Server RMI WeatherInfo Client Application RMI IP Socket API Weather Web Service Web Client Analytics Weather Web Service Server Relation Database MySQL Http SOAP/REST XML LAN Weather Google Map Client 7

6/14/20157 Middleware  Layer of software whose purpose is to mask the heterogeneity and to provide a convenient programming model for application programmers.  Middleware supports such abstractions as remote method invocation, group communications, event notification, replication of shared data, real-time data streaming.  Examples: Java RMI, grid software (Globus, Open grid Services), Web services.

6/14/20158 Clients invoke individual servers EX: browser, web client EX: Web server EX: 1. File server, 2. Web crawler

6/14/20159 A service provided by multiple servers EX: akamai (data duplication), now amazon aws (zones)

6/14/ Web proxy server and caches Proxy servers + cache are used to provide increased Availability and performance. They also play a major role Firewall based security.

6/14/ A distributed application based on peer processes Ex: distributed Whiteboard Application; Music sharing

6/14/ Web applets EX: Code streaming; mobile code

6/14/ Interaction Models  Within address space (using path as addresses)  Socket based communication: connection- oriented, connection-less Socket is an end-point of communication Lets look at some code + details

6/14/ Socket based communication int sockfd; struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(SERV_HOST_ADDR); addr.sin_port = htons(SERV_TCP_PORT); sockfd = socket(AF_INET, SOCK_STREAM, 0); connect(sockfd, (struct sockaddr *) &addr, sizeof(serv_addr)); do_stuff(stdin, sockfd);

6/14/ Classic view of network API  Start with host name (maybe) foo.bar.com

6/14/ Classic view of network API  Start with host name  Get an IP address foo.bar.com gethostbyname()

6/14/ Classic view of network API  Start with host name  Get an IP address  Make a socket (protocol, address) foo.bar.com gethostbyname() sock_id socket();connect();…

6/14/ Classic view of network API  Start with host name  Get an IP address  Make a socket (protocol, address)  Send byte stream (TCP) or packets (UDP) foo.bar.com gethostbyname() sock_id socket();connect();… TCP sockUDP sock Network 1,2,3,4,5,6,7,8,9... … Eventually arrive in order May or may not arrive

6/14/ Protocol layering  Communications stack consists of a set of services, each providing a service to the layer above, and using services of the layer below Each service has a programming API, just like any software module  Each service has to convey information one or more peers across the network  This information is contained in a header The headers are transmitted in the same order as the layered services

6/14/ Protocol layering example Browser process HTTPTCPLink1 IP Link1 IP Link2 Web server process HTTPTCPLink1 IP Physical Link 1Physical Link 2 Router

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 Router H Browser wants to request a page. Calls HTTP with the web address (URL). HTTP’s job is to convey the URL to the web server. HTTP learns the IP address of the web server, adds its header, and calls TCP.

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H TCP’s job is to work with server to make sure bytes arrive reliably and in order. TCP adds its header and calls IP. (Before that, TCP establishes a connection with its peer.) T Router

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H IP’s job is to get the packet routed to the peer through zero or more routers. IP determines the next hop from the destination IP address. IP adds its header and calls the link layer (i.e. Ethernet) with the next hop address. T Router I

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H The link’s job is to get the packet to the next physical box (here a router). It adds its header and sends the resulting packet over the “wire”. T Router IL1

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H The router’s link layer receives the packet, strips the link header, and hands the result to the IP forwarding process. T Router I

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H The router’s IP forwarding process looks at the destination IP address, determines what the next hop is, and hands the packet to the appropriate link layer with the appropriate next hop link address. T Router I

6/14/ HTTP Protocol layering example Browser process TCP Link1 IP Link1 IP Link2 Web server process HTTP TCP Link1 IP Physical Link 1Physical Link 2 H The packet goes over the link to the web server, after which each layer processes and strips its corresponding header. T Router IL2 HTI HT H

6/14/ Basic elements of any protocol header  Demuxing field Indicates which is the next higher layer (or process, or context, etc.)  Length field or header delimiter For the header, optionally for the whole packet  Header format may be text (HTTP, SMTP ( )) or binary (IP, TCP, Ethernet)

6/14/ Demuxing fields  Ethernet: Protocol Number Indicates IPv4, IPv6, (old: Appletalk, SNA, Decnet, etc.)  IP: Protocol Number Indicates TCP, UDP, SCTP  TCP and UDP: Port Number Well known ports indicate FTP, SMTP, HTTP, SIP, many others Dynamically negotiated ports indicate specific processes (for these and other protocols)  HTTP: Host field Indicates “virtual web server” within a physical web server

6/14/ IP (Internet Protocol)  Three services: Unicast: transmits a packet to a specific host Multicast: transmits a packet to a group of hosts Anycast: transmits a packet to one of a group of hosts (typically nearest)  Destination and source identified by the IP address (32 bits for IPv4, 128 bits for IPv6)  All services are unreliable Packet may be dropped, duplicated, and received in a different order

6/14/ IP(v4) address format  In binary, a 32-bit integer  In text, this: “ ” Each decimal digit represents 8 bits (0 – 255)  “Private” addresses are not globally unique: Used behind NAT boxes /8, /12, /16  Multicast addresses start with 1110 as the first 4 bits (Class D address) /4  Unicast and anycast addresses come from the same space

6/14/ UDP (User Datagram Protocol)  Runs above IP  Same unreliable service as IP Packets can get lost anywhere:  Outgoing buffer at source  Router or link  Incoming buffer at destination  But adds port numbers Used to identify “application layer” protocols or processes  Also a checksum, optional

6/14/ TCP (Transmission Control Protocol)  Runs above IP Port number and checksum like UDP  Service is in-order byte stream Application does not absolutely know how the bytes are packaged in packets  Flow control and congestion control  Connection setup and teardown phases  Can be considerable delay between bytes in at source and bytes out at destination Because of timeouts and retransmissions  Works only with unicast (not multicast or anycast)

6/14/ UDP vs. TCP  UDP is more real-time Packet is sent or dropped, but is not delayed  UDP has more of a “message” flavor One packet = one message But must add reliability mechanisms over it  TCP is great for transferring a file or a bunch of , but kind-of frustrating for messaging Interrupts to application don’t conform to message boundaries No “Application Layer Framing”  TCP is vulnerable to DoS (Denial of Service) attacks, because initial packet consumes resources at the receiver

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.8 Real-time ordering of events

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.9 Processes and channels

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.10 Omission and arbitrary failures Class of failureAffectsDescription Fail-stopProcessProcess halts and remains halted. Other processes may detect this state. CrashProcessProcess halts and remains halted. Other processes may not be able to detect this state. OmissionChannelA message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer. Send-omissionProcessA process completes asend, but the message is not put in its outgoing message buffer. Receive-omissionProcessA message is put in a process’s incoming message buffer, but that process does not receive it. Arbitrary (Byzantine) Process or channel Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.11 Timing failures Class of FailureAffectsDescription ClockProcessProcess’s local clock exceeds the bounds on its rate of drift from real time. PerformanceProcessProcess exceeds the bounds on the interval between two steps. PerformanceChannelA message’s transmission takes longer than the stated bound.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.12 Objects and principals

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.13 The enemy Communication channel Copy of m Process p q m The enemy m’

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 2.14 Secure channels Principal A Secure channel Process p q Principal B

6/14/ Summary  When designing systems or analyzing systems, you want to examine at the high level the architectural model.  Subsequent steps will explore fundamental models such as interaction model, security model, failure model, reliability model etc.