Topic outline

  • Detailed instructions and evaluation criteria will be published here (at the latest one week before the exercise session).

    Course grading (scale : 1-5) is based on the results of the assignments. No late submissions will be graded.

    Grade 1: 61-68

    Grade 2: 69-76

    Grade 3: 77-84

    Grade 4: 85-92

    Grade 5: 93-100


    Assignment 1:  Wi-Fi measurement (14 points)

    Deadline: Jan 29, 2019

    You are supposed to start working on Assignment 1 after the lecture on Jan 14. The experiments include Wi-Fi Access Point scanning, performance measurement of Wi-Fi data transmission, and impact analysis of signal strength and interference on throughput and retransmission rate.

    You can work in a pair on this assignment.

    Please run experiments in the following steps and summarize your experiment results in 4-6 slides.  

    1. Check the configuration of the Wi-Fi network interface on your own computer.
    2. Use command line to scan the Wi-Fi access points and record information of all the APs you observe from one location, including SSID, BSSID, used channel, band, network protocol(e.g. 802.11g/n/ac), supported data rates, signal strength and anything else you can get.
    3. Observe the changes in signal strength when moving around, and analyze the impact of distance and obstacles on wireless signal strength.
    4. Associate your phone or laptop with one Wi-Fi AP, and parse the beacon frames. Compare the description of AP with the result of 1).
    5. Send data from one station to another one connected to the same AP (check BSSID), and measure data rate. You can use iperf  for example to implement data transmission.
    6. Analyze the impact on data rate from signal strength. You can measure the data rate with three different levels of signal strength. (Hint: there are many ways to configure the signal strength. Besides distance and obstacles, you can consider also configuring the transmit power of AP.  In this case, it is not a good idea to run experiments in congested networks.)
    7. Generate interference and monitor noise level and MAC retransmission. Analyze the impact of interference on throughput and retransmission rate.
    In the slides, please describe your experiment setup and analyze your results (better to use figures and tables). 


    Assessment criteria:


    1 point:  Successfully scan Wi-Fi access points, and associate to one AP using command line

    1 point: Be able to monitor and parse beacon frames using tools such as Wireshark. Fill out the fields of beacon frame with the information collected.

    Max 3 points: Use experimental results to analyze the impact of distance (1 point) and obstacles (2 points) on wireless signal strength. 

    3 points:   Send data from one station to another one in the same basic service set (1 point) and analyze the impact of signal strength (e.g. the value, the variance) on data rate (2 points). 

    Max 2 points:  Be able to generate interference using 1-2 methods (1 point for each method).

    Max 4 points:  Be able to measure noise level (1 point) and MAC retransmission rate ( 1 point), and analyze the impact of interference on throughput and retransmission rate (2 points).



    Assignment 2:  Socket programming (18 points + 3 bonus points)

    Deadline: Feb 13, 2019

    You need to complete two exercises and demonstrate your programs to our course assistants during exercise sessions. No need to submit any written report. 

    Assignment 2.1:   Please implement an instant messaging service  (9 points + 3 bonus points)

    Implement a service that allows any two clients to send messages to each other. One client should be able to send messages to multiple clients and to receive messages from multiple clients. For example, if there are 3 clients, A, B and C, Client A can send a message to either B or C, and can receive messages from either B or C. Make sure the messages can be delivered to the right receivers, and correctly displayed on both sender and receiver sides. The sender will be notified if the messages have been sent successfully or not. It is not required to implement graphical user interface.You can choose to implement the service using either TCP/UDP socket.

    Two options:

    1. Every message is sent to the server and then forwarded to the receiver.

    2. Every message is sent directly from one client to another. In this case, the sender needs to query the network address of the receiver.



    Advanced function (You will get 3 extra points if you implement this function):

    1. Group chat: Client can send one message simultaneously to multiple clients.



    Please demonstrate your programs to our course assistants following the instructions below.

    1. Open at least 3 clients and 1 server. Briefly explain the communication mechanisms between clients and between client and server.

    2. Send messages from one client to any of the other clients. Show the sent/received messages on both senders and receivers.

    3. Exchange messages between several pairs of clients simultaneously.

    4. Send a message from one client to a group of clients simultaneously. (optional)


    Evaluation criteria (max 9 + 3 points):



    Feature (weights)

    Unacceptable (0)

    Marginal (1)

    Acceptable(2)

    Exceptional(3)

    Message delivery (3)

    Messages cannot be sent successfully.

    Messages can be sent from one client to another one successfully. (half-duplex)


    Sent/received messages are displayed on both sender and receiver sides.

    Two clients can send messages to each other simultaneously. (Full-duplex)


    Sent/received messages, sender information, and timestamps are displayed on both sender and receiver sides.


    Messages can be exchanged between different clients successfully.


    Support multiple pairs of clients to exchange messages simultaneously.


    Sent/received messages, sender information, and timestamps are displayed on both sender and receiver sides.

    Group chat (1)

    (optional)

    Messages cannot be sent from one client to multiple clients.

    Messages can be sent from one client to multiple clients at the same time. The client IDs or IPs are indicated as command line parameters.



    Support group management.


    Allow messages to be broadcasted within a group.

    A client can attend several groups and can receive messages from different groups and individual clients at the same time.





    Assignment 2.2:   Please implement Ping using Raw Socket (9 points)


    Please implement a program to measure the time it takes to reach a host. 

    The program sends an ICMP ECHO_REQUEST packet to a specific host, and waits for the host to return an ECHO_REPLY packet. The TTL (time-to-live) value of the packet determines the max number of router hops. If the request does not reach the host, the sender is noted back with one of the following errors.


    • TTL Expired in Transit
    • Destination Host Unreachable
    • Request Timed Out i.e. no reply
    • Unknown Host

    It shows results like this:

    xxxx% ping www.google.com

    PING www.google.com (172.217.21.164): 56 data bytes

    64 bytes from 172.217.21.164: icmp_seq=0 ttl=55 time=34.250 ms

    64 bytes from 172.217.21.164: icmp_seq=1 ttl=55 time=10.299 ms

    64 bytes from 172.217.21.164: icmp_seq=2 ttl=55 time=31.466 ms

    64 bytes from 172.217.21.164: icmp_seq=3 ttl=55 time=11.790 ms

    64 bytes from 172.217.21.164: icmp_seq=4 ttl=55 time=13.563 ms

    ^C

    --- www.google.com ping statistics ---

    5 packets transmitted, 5 packets received, 0.0% packet loss

    round-trip min/avg/max/stddev = 10.299/20.274/34.250/10.364 ms

    Hints: Open a Raw socket using SOCK_RAW with protocol as IPPROTO_ICMP. Remember to set the TTL value and set a timer at the sender side. When the input is a hostname, you need to do a DNS lookup.

    Assessment Criteria:

    3 points: be able to continuously output the RTT calculated from each packet
    2 points: be able to stop the process using Ctrl-C and calculate packet statistics  (i.e.#sent/received packets, packet loss rate) and RTT min/avg/max/stdev
    2 points: be able to handle the error of 'unknown host' (i.e. DNS lookup)
    2 points: be able to handle the error of 'request timeout'


    Assignment 3:  How YouTube works? (18 points)

    Deadline: Feb 17, 2019

    Please use network diagnostic tools to analyze the networking mechanisms used for implementing YouTube services. 

    You can monitor the network traffic during the following process, and describe the entities involved in the process, the protocols in use (e.g. TCP/UDP, HTTP, Streaming protocols, and etc.), and the interaction between entities. 
    1) Search for a video on youtube.com
    2) Choose a video and start video playback
    3) Wait until the video playback completes

    You can use traceroute or other tools to discover the routing paths from your client to YouTube servers. Figure out the architecture of YouTube (e.g. DNS, routers, load balancers, media servers and etc.) and how CDN works in this case.

    Hints:  Repeat your experiments at different times of day, different locations, and using different video (e.g. video generated locally in Finland or abroad). Note that there is a Q&A session for Assignment III, if you have questions regarding the requirements. 

    References:
    • Vaibhav Bajpai, Saba Ahsan, Jürgen Schönwälder, and Jörg Ott. 2017. Measuring YouTube Content Delivery over IPv6. SIGCOMM Comput. Commun. Rev. 47, 5 (October 2017), 2-11. DOI: https://doi.org/10.1145/3155055.3155057
    • Albert Rafetseder, Florian Metzger, David Stezenbach, and Kurt Tutschku. 2011. Exploring YouTube's content distribution network through distributed application-layer measurements: a first view. In Proceedings of the 2011 International Workshop on Modeling, Analysis, and Control of Complex Networks (Cnet '11). International Teletraffic Congress 31-36.
    • R. Torres, A. Finamore, J. R. Kim, M. Mellia, M. M. Munafo and S. Rao, "Dissecting Video Server Selection Strategies in the YouTube CDN," 2011 31st International Conference on Distributed Computing Systems, Minneapolis, MN, 2011, pp. 248-257.
    • doi: 10.1109/ICDCS.2011.43
    • V. K. Adhikari et al., "Measurement Study of Netflix, Hulu, and a Tale of Three CDNs," in IEEE/ACM Transactions on Networking, vol. 23, no. 6, pp. 1984-1997, Dec. 2015. doi: 10.1109/TNET.2014.2354262

      Please submit a written report (3-5 pages).  Here is a suggested template of the report:

      Section 1:  Goals of the experiments (what do you want to learn from experiment), design criteria and description of test cases (explain what kind of experiments you run and why you want to run those experiments)
      Section 2:  Architecture of YouTube (entities and their roles) learnt from experimental results
      Section 3:  Workflow of video search and delivery (use workflow graphs to explain the processes,  mention which protocols are in use)
      Section 4:  Discuss how YouTube CDN works based on experimental results


      Assessment Criteria:

      Topic (weight)

      Unacceptable (0)

      Marginal (1)

      Acceptable (2)

      Exceptional (3)

      Experiment design (2)

       

      Little or no grasp of problem. Incapable of developing proper test cases.

      Some understanding of YouTube services.

      Major deficiencies of test cases.

      Overall sound understanding of the YouTube services. 

      Test cases are well-designed to understand the workflow of video search and delivery.

      Some test cases are missing to fully understand how YouTube works.

       

      Test cases are well-designed and sufficient to identify the architecture of YouTube, the workflow of video search and delivery, and how YouTube CDN works.

      Explain the design criteria of your test cases.

      Result analysis (3)

      Experiments results are lacking.

      Experiments are properly conducted in most cases.

      Some experiment results are achieved.

      Experiments are all properly conducted.

      Describe the architecture of YouTube and the workflow of video search and delivery clearly.

      Experiments are all properly conducted.

      Describe the architecture of YouTube and the workflow of video search and delivery clearly.

      Figure out  how YouTube CDN works.

      Academic Writing (1)

      The report is difficult to follow. Many grammar errors in the text. A lot of text is irrelevant with the topic.

      The report is otherwise easy to follow, but some important details are missing.

      The report is easy to follow and the ideas are well expressed. The paper is well written, except few places which require clarification.

       

      It is well written and concise. Ideas are well expressed. The report is well organized and easy to follow. Plots and diagrams are readily understandable and they support the text.



































      Part II - Security

      Assignment 1 - Cryptography ( Total 8 Points)

      Deadline: 13 March, 2019

      Please find the details here.
       
      Assignment 2 - Digital Signature (Total 9 Points)

      Deadline: 13 March, 2019

      Please find the details here.

      Assignment 3 - Authentication (Total 8 Points)

      Deadline: 27 March, 2019

      Please find the details here.

      Assignment 4 - PGP (Total 8 Points)

      Deadline: 27 March, 2019

      Please find the details here.

      Assignment 5 - SSL (Total 9 Points)

      Deadline: 10 April, 2019

      Please find the details here.

      Assignment 6 - IPsec & VPN (Total 9 Points)

      Deadline: 10 April, 2019

      Please find the details here.