61A Lecture 33 Monday, November 25 Announcements 2 Announcements - - PowerPoint PPT Presentation
61A Lecture 33 Monday, November 25 Announcements 2 Announcements - - PowerPoint PPT Presentation
61A Lecture 33 Monday, November 25 Announcements 2 Announcements Homework 10 due Tuesday 11/26 @ 11:59pm 2 Announcements Homework 10 due Tuesday 11/26 @ 11:59pm No lecture on Wednesday 11/27 or Friday 11/29 2 Announcements
Announcements
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
- No discussion section Wednesday 11/27 through Friday 11/29
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
- No discussion section Wednesday 11/27 through Friday 11/29
Lab will be held on Wednesday 11/27
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
- No discussion section Wednesday 11/27 through Friday 11/29
Lab will be held on Wednesday 11/27
- Recursive art contest entries due Monday 12/2 @ 11:59pm
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
- No discussion section Wednesday 11/27 through Friday 11/29
Lab will be held on Wednesday 11/27
- Recursive art contest entries due Monday 12/2 @ 11:59pm
- Guerrilla section about logic programming coming soon...
2
Announcements
- Homework 10 due Tuesday 11/26 @ 11:59pm
- No lecture on Wednesday 11/27 or Friday 11/29
- No discussion section Wednesday 11/27 through Friday 11/29
Lab will be held on Wednesday 11/27
- Recursive art contest entries due Monday 12/2 @ 11:59pm
- Guerrilla section about logic programming coming soon...
- Homework 11 due Thursday 12/5 @ 11:59pm
2
Addition in Logic
(Demo)
Distributed Computing
Distributed Computing
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
- Coordination is enabled by messages passed across a network.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
- Coordination is enabled by messages passed across a network.
- Individual programs have differentiating roles.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
- Coordination is enabled by messages passed across a network.
- Individual programs have differentiating roles.
Distributed computing for large-scale data processing:
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
- Coordination is enabled by messages passed across a network.
- Individual programs have differentiating roles.
Distributed computing for large-scale data processing:
- Databases respond to queries over a network.
5
Distributed Computing
A distributed computing application consists of multiple programs running on multiple computers that together coordinate to perform some task.
- Computation is performed in parallel by many computers.
- Information can be restricted to certain computers.
- Redundancy and geographic diversity improve reliability.
Characteristics of distributed computing:
- Computers are independent — they do not share memory.
- Coordination is enabled by messages passed across a network.
- Individual programs have differentiating roles.
Distributed computing for large-scale data processing:
- Databases respond to queries over a network.
- Data sets can be partitioned across multiple machines (next lecture).
5
Network Messages
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network.
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
- Transfer a program to be executed by another computer.
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
- Transfer a program to be executed by another computer.
Messages conform to a message protocol adopted by both the sender (to encode the message) & receiver (to interpret the message).
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
- Transfer a program to be executed by another computer.
Messages conform to a message protocol adopted by both the sender (to encode the message) & receiver (to interpret the message).
- For example, bits at fixed positions may have fixed meanings.
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
- Transfer a program to be executed by another computer.
Messages conform to a message protocol adopted by both the sender (to encode the message) & receiver (to interpret the message).
- For example, bits at fixed positions may have fixed meanings.
- Components of a message may be separated by delimiters.
6
Network Messages
Computers communicate via messages: sequences of bytes transmitted over a network. Messages can serve many purposes:
- Send data to another computer
- Request data from another computer
- Instruct a program to call a function on some arguments.
- Transfer a program to be executed by another computer.
Messages conform to a message protocol adopted by both the sender (to encode the message) & receiver (to interpret the message).
- For example, bits at fixed positions may have fixed meanings.
- Components of a message may be separated by delimiters.
- Protocols are designed to be implemented by many different programming languages on many
different types of machines.
6
Internet Protocol
The Internet Protocol
8
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
8
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
8
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
8
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
8
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
8
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
IPv4
8
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
IPv4
8
All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet IPv4
8
All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports IPv4
8
All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports IPv4
8
E.g., 192.168.1.1 All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports The packet knows its size IPv4
8
E.g., 192.168.1.1 All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports The packet knows its size IPv4
8
Max length: 216 = 65,536 E.g., 192.168.1.1 All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports Packets can't survive forever The packet knows its size IPv4
8
Max length: 216 = 65,536 E.g., 192.168.1.1 All machines know IPv4
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Where to send the packet Where to send error reports Packets can't survive forever The packet knows its size IPv4
8
Max length: 216 = 65,536 E.g., 192.168.1.1 All machines know IPv4 Decremented
- n forwarding
http://en.wikipedia.org/wiki/IPv4
The Internet Protocol
The Internet Protocol (IP) specifies how to transfer packets of data among networks.
- Networks are inherently unreliable at any point.
- The structure of a network is dynamic, not fixed.
- No system exists to monitor or track communications.
Packets are forwarded toward their destination on a best effort basis. Programs that use IP typically need a policy for handling lost packets. Where to send the packet Where to send error reports Packets can't survive forever The packet knows its size IPv4
8
Max length: 216 = 65,536 E.g., 192.168.1.1 All machines know IPv4 Decremented
- n forwarding
Transmission Control Protocol
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
The receiver can correctly order packets that arrive out of order.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
The receiver can correctly order packets that arrive out of order. The receiver can ignore duplicate packets.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
The receiver can correctly order packets that arrive out of order. The receiver can ignore duplicate packets.
- All received packets are acknowledged; both parties know that transmission succeeded.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
The receiver can correctly order packets that arrive out of order. The receiver can ignore duplicate packets.
- All received packets are acknowledged; both parties know that transmission succeeded.
- Packets that aren't acknowledged are sent repeatedly.
10
Transmission Control Protocol
The design of the Internet Protocol (IPv4) imposes constraints:
- Packets are limited to 65,535 bytes each.
- Packets may arrive in a different order than they were sent.
- Packets may be duplicated or lost.
The Transmission Control Protocol (TCP) improves reliability:
- Ordered, reliable transmission of arbitrary byte streams.
- Implemented using the IP. Every TCP connection involves sending IP packets.
- Each packet in a TCP session has a sequence number:
The receiver can correctly order packets that arrive out of order. The receiver can ignore duplicate packets.
- All received packets are acknowledged; both parties know that transmission succeeded.
- Packets that aren't acknowledged are sent repeatedly.
The socket module in Python implements the TCP.
10
Transmission Control Protocol
TCP Handshakes
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
- The number of required messages is minimized.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
- The number of required messages is minimized.
Communication Rules:
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
- The number of required messages is minimized.
Communication Rules:
- Computer A can send an initial message to Computer B requesting a new connection.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
- The number of required messages is minimized.
Communication Rules:
- Computer A can send an initial message to Computer B requesting a new connection.
- Computer B can respond to messages from Computer A.
11
TCP Handshakes
All TCP connections begin with a sequence of messages called a "handshake" which verifies that communication is possible. "Can you hear me now?" Let's design a handshake protocol. Handshake Goals:
- Computer A knows that it can send data to and receive data from Computer B.
- Computer B knows that it can send data to and receive data from Computer A.
- Lots of separate connections can exist without any confusion.
- The number of required messages is minimized.
Communication Rules:
- Computer A can send an initial message to Computer B requesting a new connection.
- Computer B can respond to messages from Computer A.
- Computer A can respond to messages from Computer B.
11
Message Sequence of a TCP Connection
12
Message Sequence of a TCP Connection
Computer A
12
Message Sequence of a TCP Connection
Computer A Computer B
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement
Establishes packet numbering system
12
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement
Establishes packet numbering system
12
..
Data message from A to B Data message from B to A
..
Acknowledgement Acknowledgement
..
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement Termination signal
Establishes packet numbering system
12
..
Data message from A to B Data message from B to A
..
Acknowledgement Acknowledgement
..
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement Termination signal Acknowledgement & termination signal
Establishes packet numbering system
12
..
Data message from A to B Data message from B to A
..
Acknowledgement Acknowledgement
..
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement Termination signal Acknowledgement & termination signal Acknowledgement
Establishes packet numbering system
12
..
Data message from A to B Data message from B to A
..
Acknowledgement Acknowledgement
..
Message Sequence of a TCP Connection
Computer A Computer B
Synchronization request Acknowledgement & synchronization request Acknowledgement Termination signal Acknowledgement & termination signal Acknowledgement
Establishes packet numbering system
12
..
Data message from A to B Data message from B to A
..
Acknowledgement Acknowledgement
..
Client/Server Architecture
The Client/Server Architecture
14
The Client/Server Architecture
One server provides information to multiple clients through request and response messages.
14
The Client/Server Architecture
One server provides information to multiple clients through request and response messages. Server role: Respond to service requests with requested information.
14
The Client/Server Architecture
One server provides information to multiple clients through request and response messages. Server role: Respond to service requests with requested information. Client role: Request information and make use of the response.
14
The Client/Server Architecture
One server provides information to multiple clients through request and response messages. Server role: Respond to service requests with requested information. Client role: Request information and make use of the response. Abstraction: The client knows what service a server provides, but not how it is provided.
14
The Client/Server Architecture
One server provides information to multiple clients through request and response messages. Server role: Respond to service requests with requested information. Client role: Request information and make use of the response. Abstraction: The client knows what service a server provides, but not how it is provided.
14
Client/Server Example: The World Wide Web
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
- Interpret requests and respond with content.
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
- Interpret requests and respond with content.
Web browser Web server
TCP Initialization Handshake
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
- Interpret requests and respond with content.
HTTP GET request of content
Web browser Web server
TCP Initialization Handshake
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
- Interpret requests and respond with content.
HTTP GET request of content HTTP response with content
Web browser Web server
TCP Initialization Handshake
15
Client/Server Example: The World Wide Web
The client is a web browser (e.g., Firefox):
- Request content for a location.
- Interpret the content for the user.
The server is a web server:
- Interpret requests and respond with content.
HTTP GET request of content HTTP response with content Follow-up requests for auxiliary content
...
Web browser Web server
TCP Initialization Handshake
15
The Hypertext Transfer Protocol
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture.
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture.
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Uniform resource locator (URL)
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL)
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL) Server response contains more than just the resource itself:
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL) Server response contains more than just the resource itself:
- Status code, e.g. 200 OK, 404 Not Found, 403 Forbidden, etc.
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL) Server response contains more than just the resource itself:
- Status code, e.g. 200 OK, 404 Not Found, 403 Forbidden, etc.
- Date of response; type of server responding
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL) Server response contains more than just the resource itself:
- Status code, e.g. 200 OK, 404 Not Found, 403 Forbidden, etc.
- Date of response; type of server responding
- Last-modified time of the resource
16
The Hypertext Transfer Protocol
The Hypertext Transfer Protocol (HTTP) is a protocol designed to implement a Client/ Server architecture. Browser issues a GET request to a server at www.nytimes.com for the content (resource) at location "pages/todayspaper". Uniform resource locator (URL) Server response contains more than just the resource itself:
- Status code, e.g. 200 OK, 404 Not Found, 403 Forbidden, etc.
- Date of response; type of server responding
- Last-modified time of the resource
- Type of content and length of content
16
Properties of a Client/Server Architecture
17
Properties of a Client/Server Architecture
Benefits:
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
- Computing resources become scarce when demand increases.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
- Computing resources become scarce when demand increases.
Common use cases:
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
- Computing resources become scarce when demand increases.
Common use cases:
- Databases — The database serves responses to query requests.
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
- Computing resources become scarce when demand increases.
Common use cases:
- Databases — The database serves responses to query requests.
- Open Graphics Library (OpenGL) — A graphics processing unit (GPU) serves images to a
central processing unit (CPU).
17
Properties of a Client/Server Architecture
Benefits:
- Creates a separation of concerns among components.
- Enforces an abstraction barrier between client and server.
- A centralized server can reuse computation across clients.
Liabilities:
- A single point of failure: the server.
- Computing resources become scarce when demand increases.
Common use cases:
- Databases — The database serves responses to query requests.
- Open Graphics Library (OpenGL) — A graphics processing unit (GPU) serves images to a
central processing unit (CPU).
- Internet file and resource transfer: HTTP, FTP, email, etc.
17
Peer-to-Peer Architecture
The Peer-to-Peer Architecture
19
The Peer-to-Peer Architecture
All participants in a distributed application contribute computational resources: processing, storage, and network capacity.
19
The Peer-to-Peer Architecture
All participants in a distributed application contribute computational resources: processing, storage, and network capacity. Messages are relayed through a network of participants.
19
The Peer-to-Peer Architecture
All participants in a distributed application contribute computational resources: processing, storage, and network capacity. Messages are relayed through a network of participants. Each participant has only partial knowledge of the network.
19
The Peer-to-Peer Architecture
All participants in a distributed application contribute computational resources: processing, storage, and network capacity. Messages are relayed through a network of participants. Each participant has only partial knowledge of the network.
http://en.wikipedia.org/wiki/File:P2P-network.svg
19
Network Structure Concerns
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Network Structure Concerns
Some data transfers on the Internet are faster than others. The time required to transfer a message through a peer-to-peer network depends on the route chosen.
http://en.wikipedia.org/wiki/File:P2P-network.svg
20
Example: Skype
21
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture.
21
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server.
21
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes.
21
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A Client B
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A Client B Clients behind firewalls cannot communicate directly
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A Client B Client C Clients behind firewalls cannot communicate directly
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A Client B Client C A client not behind a firewall may be used as a supernode Clients behind firewalls cannot communicate directly
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21
Client A Client B Client C A client not behind a firewall may be used as a supernode Clients behind firewalls cannot communicate directly
Example: Skype
Skype is a Voice Over IP (VOIP) system that uses a hybrid peer-to-peer architecture. Login & contacts are handled via a centralized server. Conversations between two computers that cannot send messages to each other directly are relayed through supernodes. Any Skype client with its own IP address may be a supernode.
21