Sei sulla pagina 1di 1

CEG 4360/6360 Distributed Computing Systems

Homework 1 (Due on Feb 10 in class)


1. A client sends a 500 byte request message to a service, which produces a response containing
2000 bytes. Estimate the total time required to complete the request in each of the following
cases, with the performance assumptions listed below:
a. Using connectionless (datagram) communication (for example, UDP);
b. Using connection-oriented communication (for example, TCP);
Some statistics and assumption
Latency per packet (local or remote, incurred on both send and receive): 10ms
Connection setup time (TCP only): 10ms
Data transfer rate: 5 Mbps
Maximum Transmission Unit (MTU, i.e., maximum packet size): 1000 bytes
Server request processing time: 20ms
Assume that the network is lightly loaded.
(We have a similar example discussed in class. You need to understand how interactions happen and
what the steps are in each of the cases.)
2. UDP or TCP, which one is more appropriate for the following protocols? And briefly justify your
answers.
a. Virtual terminal access, e.g., Telnet.
b. File transfer, e.g., FTP
c. User location, e.g. rwho, finger
d. Information browsing, e.g., HTTP
e. Remote procedure call
(Think about what you do with the applications built on top of these protocols)
3. An idempotent operation is an operation that can be performed repeatedly with the same effect
as if it has been performed exactly once. It is an important concept for handling duplicated
requests. Discuss whether the following operations are idempotent
a. Pressing a lift (elevator) request button;
b. Writing data to a file;
c. Appending data to a file.
Briefly justify why they are or are not.
4. Discuss the invocation semantics (maybe, at-most-once, or at-least-once) that can be achieved
when the request-reply protocol is implemented over a TCP connection, which guarantees thatdata is
delivered in the order sent, without loss or duplication. However, the connection can be
broken, caused by either the server crashes or the network crashes. The client cannot
distinguish which crash causes the broken connection. Please analyze the scenarios and see
which of the three semantics can be achieved (hint: analyze what happens in the normal case
and in the broken connection case, and then conclude).
5. Describe whether the three methods: group communication, pub-sub systems, and message
queue are space coupled or uncoupled, time coupled or uncoupled, with the implementations
discussed in the class. If they are space or time coupled, how to make them space and time
uncoupled with your design?
6. Check the textbook about the definition of asynchronous and time-uncoupled
communication. If a communication paradigm is asynchronous, is it also time-uncoupled?
Explain your answer with examples as appropriate.
7. The WeChat app allows a user to send a message to any of his/her friends even when the friend
is not online. Once the friend is online, he/she will get a notification. Is this communication
paradigm space/time coupled or not? Justify your answer. What is your design to make this
possibly happen? Briefly describe and justify your design.

Potrebbero piacerti anche