Hw1 (10pts) - Due at noon, Fri. Jan. 26
1) Equation 1.1 from pg. 24 gives the end-to-end delay for sending one packet of length L over N links of transmission rate R. If N = 3, then to send one packet it takes 3*(L/R), and to send three packets it takes 3*(L/R) + 2*(L/R). What is the the end-to-end delay for sending ten packets.
Pg. 68 - R2, R4, R12
Pg. 71 - P3
Hw2 (10pts) - Due at noon, Fri. Febr. 2
1) (2pts) Consider Figure 1.20 at pg. 46. Suppose R_c = 2Mbps and R_s = 3Mbps.
a) If R = 50Mbps, what is the throughput between one of the client-server pair in this figure?
b) If R = 10Mbps, what is the throughput between one of the client-server pair in this figure?
Pg. 75 - P24 (3pts)
Pg. 76 - P25 (5pts) (Hint: width of a bit in a link is the ratio between the length of the link and the bandwidth-delay product)
Hw3 (10pts) - Due at noon, Fri. Febr. 9
Hw3 (creating a Web server) is posted here. Before starting your hw, you must read section 2.7.
Note: my own Web server is up and running all this week (at the IP and port number shown below). Type the following request in your favorite webrowser and my server will honor your request :)
http://140.103.63.132:6789/testSV.html
Now that you have seen my server at work, you must build your own. Your Web server must function in the same way!
Please sybmit your WebServerLastName.py using this link.
Hw4 (10pts) - Due at noon, Fri. Febr. 16
Hw4 (creating a mail client) is posted here. Find online a free SMTP server to test your client. Suggestions: the free mail server SMTP4Dev for Windows; or the following SMTP server http://nilhcem.github.io/FakeSMTP/ for Mac OS (Note: my screen shots were created using the FakeSMTP mail server for MacOS).
Note: if you run your e-mail server on your computer where your e-mail client runs, you may set your mailserver variable in the client program to 'localhost'.
Note: you may find useful for this hw the SMTP client-server communication from page 123.
Note: in Python 2.7 sending simple string messages works (this is what I used); in Python 3.5 you might need to use utf-8 encoding (for example, the mssg = "250 reply" is encoded with the Python command mssg.encode('utf-8')).
An illustration of how your client should communicate (send e-mail) to the server is shown in picture1 and picture2 and picture3 (this shows the messages exchanged between client and server).
Please sybmit your MailClientLastName.py and mailPictureLastName.png (a snapshot of your mail server showing that your message sent from your mail client was received by the mail server) as a zip file using this link.
Note to instructor: have students send an e-mail to instructor's mail server.
Hw5 (10pts) - Due at noon, Fri. March 2
Hw4 (creating an UDP Ping client) is posted here. An example of a run is posted here (ten pings with the fourth one timed out), and another example is posted here (ten pings with four pings lost). Your client should work in a similar way. Upload your hw (clientPing.py, and one picture with a run of your client-server Ping demo) at this link.
Some hints:
1)
Command to run the UDPPingServer: python UDPPingServer.py
Command to run the UDPPingClient: python UDPPingClient <IP_addr> <port#>
2)
To get the server hostname and port as command line arguments:
import sys
argv = sys.argv
host = argv[1]
port = argv[2]
3)
To get the time in Python:
import time
t = time.time()
4)
Everything else should be similar to the UDPClient we have at our website (the very first client-server we did in the class).