Assignment 02cvredt
Assignment 02cvredt
R1. List five nonproprietary Internet applications and the application-layer protocols that they use.
R2. What is the difference between network architecture and application architecture?
R3. For a communication session between a pair of processes, which process is the client and
which is the server?
R4. For a P2P file-sharing application, do you agree with the statement, “There is no notion of
client and server sides of a communication session”? Why or why not?
R5. What information is used by a process running on one host to identify a process running on
another host?
R6. Suppose you wanted to do a transaction from a remote client to a server as fast as possible.
R7. Referring to Figure 2.4 , we see that none of the applications listed in Figure 2.4 requires
both no data loss and timing. Can you conceive of an application that requires no data loss and
R8. List the four broad classes of services that a transport protocol can provide. For each of the
service classes, indicate if either UDP or TCP (or both) provides such a service.
R9. Recall that TCP can be enhanced with SSL to provide process-to-process security services,
including encryption. Does SSL operate at the transport layer or the application layer? If the
application developer wants TCP to be enhanced with SSL, what does the developer have to
do?
R21. In BitTorrent, suppose Alice provides chunks to Bob throughout a 30-second interval. Will
Bob necessarily return the favor and provide chunks to Alice in this same interval? Why or why
not?
R22. Consider a new peer Alice that joins BitTorrent without possessing any chunks. Without
any chunks, she cannot become a top-four uploader for any of the other peers, since she has
nothing to upload. How then will Alice get her first chunk?
R23. What is an overlay network? Does it include routers? What are the edges in the overlay
network?
R24. CDNs typically adopt one of two different server placement philosophies. Name and briefly
describe them.
R25. Besides network-related considerations such as delay, loss, and bandwidth performance,
there are other important factors that go into designing a CDN server selection strategy. What
are they?
R26. In Section 2.7, the UDP server described needed only one socket, whereas the TCP server
needed two sockets. Why? If the TCP server were to support n simultaneous connections, each
from a different client host, how many sockets would the TCP server need?
R27. For the client-server application over TCP described in Section 2.7 , why must the server
program be executed before the client program? For the client-server application over UDP, why
may the client program be executed before the server program?
P2. SMS, iMessage, and WhatsApp are all smartphone real-time messaging
systems. After
doing some research on the Internet, for each of these systems write one
paragraph about the
protocols they use. Then write a paragraph explaining how they differ.
P7. Suppose within your Web browser you click on a link to obtain a Web page. The IP address
for the associated URL is not cached in your local host, so a DNS lookup is necessary to obtain
the IP address. Suppose that n DNS servers are visited before your host receives the IP address
from DNS; the successive visits incur an RTT of Further suppose that the Web
page associated with the link contains exactly one object, consisting of a small amount of HTML
text. Let RTT denote the RTT between the local host and the server containing the object.
Assuming zero transmission time of the object, how much time elapses from when the client
P8. Referring to Problem P7, suppose the HTML file references eight very small objects on the
same server. Neglecting transmission times, how much time elapses with
c. Persistent HTTP?
P12. Write a simple TCP program for a server that accepts lines of input from a client and prints
the lines onto the server’s standard output. (You can do this by modifying the TCPServer.py
program in the text.) Compile and execute your program. On any other machine that contains a
Web browser, set the proxy server in the browser to the host that is running your server
program; also configure the port number appropriately. Your browser should now send its GET
request messages to your server, and your server should display the messages on its standard
output. Use this platform to determine whether your browser generates conditional GET
P13. What is the difference between MAIL FROM : in SMTP and From : in the mail message
itself?
P14. How does SMTP mark the end of a message body? How about HTTP? Can HTTP use the
P15. Read RFC 5321 for SMTP. What does MTA stand for? Consider the following received
spam e-mail (modified from a real spam e-mail). Assuming only the originator of this spam e-mail
is malicious and all other hosts are honest, identify the malacious host that has generated this
spam e-mail
P28. Install and compile the Python programs TCPClient and UDPClient on
one host and
TCPServer and UDPServer on another host.
a. Suppose you run TCPClient before you run TCPServer. What happens?
Why?
b. Suppose you run UDPClient before you run UDPServer. What happens?
Why?
c. What happens if you use different port numbers for the client and
server sides?
P29. Suppose that in UDPClient.py, after we create the socket, we add
the line:
clientSocket.bind((’’, 5432))
Will it become necessary to change UDPServer.py? What are the port
numbers for the sockets
in UDPClient and UDPServer? What were they before making this change?
P30. Can you configure your browser to open multiple simultaneous
connections to a Web site?
What are the advantages and disadvantages of having a large number of
simultaneous TCP
connections?
P31. We have seen that Internet TCP sockets treat the data being sent as
a byte stream but
UDP sockets recognize message boundaries. What are one advantage and one
disadvantage of
byte-oriented API versus having the API explicitly recognize and
preserve application-defined
message boundaries?
P32. What is the Apache Web server? How much does it cost? What
functionality does it
currently have? You may want to look at Wikipedia to answer this question.