Top Banner
06/23/22 1 System Models Chapter 2: Coulouris + Chapter notes from K. Birman’s that in turn was based on Professor Paul Francis notes, Cornell University
42

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.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

04/18/23 1

System ModelsChapter 2: Coulouris +

Chapter notes from K. Birman’s that in turn was based on Professor Paul

Francis notes, Cornell University

Page 2: 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.

04/18/23 2

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.”

Page 3: 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.

04/18/23 3

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.

Page 4: 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.

04/18/23 4

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.

Page 5: 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.

04/18/23 5

Software and hardware service layers in distributed systems

Applications, services

Computer and network hardware

Platform

Operating system

Middleware

Page 6: 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.

7

National Weather Service Web Site

Data AggregatorRMI WeatherInfo

Server

RMI WeatherInfo Client

Application

RMIIP Socket API

Weather Web Service Web Client

AnalyticsWeather Web Service

Server

Relation Database

MySQL

Http

Http

SOAP/RESTXML

LAN

1

2

3

4

5 6

Weather Google Map Client

7

Page 7: 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.

04/18/23 7

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.

Page 8: 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.

04/18/23 8

Clients invoke individual servers

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

EX: browser, web client

EX: Web server

EX: 1. File server, 2. Web crawler

Page 9: 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.

04/18/23 9

A service provided by multiple servers

Server

Server

Server

Service

Client

Client

EX: akamai (data duplication), now amazon aws (zones)

Page 10: 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.

04/18/23 10

Web proxy server and caches

Client

Proxy

Web

server

Web

server

serverClient

Proxy servers + cache are used to provide increased Availability and performance. They also play a major role Firewall based security. http://www.interhack.net/pubs/fwfaq/

Page 11: 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.

04/18/23 11

A distributed application based on peer processes

Coordination

Application

code

Coordination

Application

code

Coordination

Application

code

Ex: distributed Whiteboard Application;Music sharing

Page 12: 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.

04/18/23 12

Web appletsa) client request results in the downloading of applet code

Web server

ClientWeb serverApplet

Applet code

Client

b) client interacts with the applet

EX: Code streaming; mobile code

Page 13: 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.

04/18/23 13

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

Page 14: 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.

04/18/23 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);

Page 15: 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.

04/18/23 15

Classic view of network API Start with host name

(maybe) foo.bar.com

Page 16: 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.

04/18/23 16

Classic view of network API Start with host name Get an IP address foo.bar.com

gethostbyname()

10.5.4.3

Page 17: 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.

04/18/23 17

Classic view of network API Start with host name Get an IP address Make a socket

(protocol, address)

foo.bar.comgethostbyname()

10.5.4.3

sock_id

socket();connect();…

Page 18: 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.

04/18/23 18

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.comgethostbyname()

10.5.4.3

sock_id

socket();connect();…

TCP sock UDP sock

Network

1,2,3,4,5,6,7,8,9 . . . …

Eventually arrive in order

May or may not arrive

Page 19: 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.

04/18/23 19

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

Page 20: 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.

04/18/23 20

Protocol layering example

Browserprocess

HTTP

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical Link 2

Router

Page 21: 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.

04/18/23 21

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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.

Page 22: 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.

04/18/23 22

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

Page 23: 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.

04/18/23 23

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

Page 24: 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.

04/18/23 24

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

I L1

Page 25: 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.

04/18/23 25

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

Page 26: 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.

04/18/23 26

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

Page 27: 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.

04/18/23 27

HTTP

Protocol layering example

Browserprocess

TCP

Link1

IP

Link1

IP

Link2

Web serverprocess

HTTP

TCP

Link1

IP

Physical Link 1 Physical 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

I L2

H T I

H T

H

Page 28: 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.

04/18/23 28

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 (email)) or binary (IP, TCP, Ethernet)

Page 29: 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.

04/18/23 29

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

Page 30: 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.

04/18/23 30

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

Page 31: 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.

04/18/23 31

IP(v4) address format In binary, a 32-bit integer In text, this: “128.52.7.243”

Each decimal digit represents 8 bits (0 – 255) “Private” addresses are not globally unique:

Used behind NAT boxes 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16

Multicast addresses start with 1110 as the first 4 bits (Class D address) 224.0.0.0/4

Unicast and anycast addresses come from the same space

Page 32: 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.

04/18/23 32

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

Page 33: 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.

04/18/23 33

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)

Page 34: 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.

04/18/23 34

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 email, 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

Page 35: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.8Real-time ordering of events

send

receive

send

receive

m1 m2

2

1

3

4X

Y

Z

Physical time

Am3

receive receive

send

receive receive receivet1 t2 t3

receive

receive

m2

m1

Page 36: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.9Processes and channels

process p process q

Communication channel

send

Outgoing message buffer Incoming message buffer

receivem

Page 37: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.10Omission and arbitrary failuresClass of failure Affects DescriptionFail-stop ProcessProcess halts and remains halted. Other processes may

detect this state.Crash ProcessProcess halts and remains halted. Other processes may

not be able to detect this state.Omission ChannelA message inserted in an outgoing message buffer never

arrives at the other end’s incoming message buffer.Send-omission ProcessA process completes a send, 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 orchannel

Process/channel exhibits arbitrary behaviour: it maysend/transmit arbitrary messages at arbitrary times,commit omissions; a process may stop or take an

incorrect step.

Page 38: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.11Timing failures

Class of Failure Affects DescriptionClock Process Process’s local clock exceeds the bounds on its

rate of drift from real time.Performance Process Process exceeds the bounds on the interval

between two steps.Performance Channel A message’s transmission takes longer than the

stated bound.

Page 39: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.12Objects and principals

Network

invocation

resultClient

Server

Principal (user) Principal (server)

ObjectAccess rights

Page 40: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.13The enemy

Communication channel

Copy of m

Process p Process qm

The enemym’

Page 41: 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.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems:

Concepts and Design Edn. 4 © Pearson Education 2005

Figure 2.14Secure channels

Principal A

Secure channelProcess p Process q

Principal B

Page 42: 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.

04/18/23 42

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.