, , ,

[SOLVED] CSEE4119 Project 1 Proxy

$25

File Name: CSEE4119_Project_1_Proxy.zip
File Size: 226.08 KB

Categories: , , , Tags: , , ,
5/5 - (1 vote)
 

  • Clients issue DNS query to resolve domain name to IP address of content server in a CDN.
  • CDN’s DNS server selects best content server based on client’s IP and server load.
  • Client requests video chunks encoded at multiple bitrates and selects bitrate based on throughput and buffer.
  • Entire system runs on one host with a network simulator (netsim).
  • Use a VM for development and testing.
  • Components:
    • Browser: Use an off-the-shelf web browser to play videos.
    • Proxy: Implement adaptive bitrate selection in an HTTP proxy.
    • Web Server: Video content served from an off-the-shelf web server (Apache).
  • Individual project.
  • Can discuss at a conceptual level with others and consult Internet material (except Python proxy implementations).
  • Final code and configuration must be your own.
  • Implement a proxy that forwards messages between client and server.
  • VM is required for final stage but not preliminary stage.
  • Accept connections from clients and open a connection with a server.
  • Steps:
    • Establish a connection with a client: Listen on a specified port for client connections.
    • Establish a connection with a server: Connect to the server using the provided IP and port 8080.
  • Messages have a body and an End Of Message (EOM) symbol (
    ).
  • Proxy waits for a message from the client and then a response from the server before forwarding.
  • Create an executable Python script called proxy in the proxy directory.
  • Invoke it with listen-port, fake-ip, and server-ip as arguments.
  • Use the netcat tool to test the proxy implementation.
  • Proxy should forward messages of any length and support back-and-forth messages until connection is closed.
  • Submit a zipped file named <yourUNI>.zip with a handin directory containing:
    • proxy directory with source code and an executable named proxy.
  • Submit to Gradescope.
  • Details to be released later.
  • Provided on GCP.
  • Follow tutorial to set up and do testing.
  • Options for moving files between VM and computer.
  • Details to be released later.
  • Details to be released later.
  • Details to be released later.
  • Use Python 3 (version 3.10.12 on VM).
  • Allowed packages: sys, socket, threading, select, time, re, numpy, subprocess.
  • Proxy (70 points):
    • Preliminary stage proxying [15 pts]
    • Final stage proxying runs on browser [10 pts]
    • Final stage proxy – implementing EWMA throughput estimator & bitrate adaptation [35 pts]
    • DNS Server – correct responses and implementation of web server selection [10 pts]
    • Code executes as instructed [-10 pts if we have to manually debug things]
  • Writeup (20 points):
    • Plots of utilization, fairness, and smoothness for [10 pts] α ∈ {0.1, 0.5, 0.9}
    • Discussion of tradeoffs for varying [10 pts] α
  • Style (10 points):
    • Code thoroughly commented
    • Code organized and modular
    • README listing your files and what they contain
  • Zero tolerance on plagiarism.
  • Follow Columbia University and department policies.
  • Individual assignment, no sharing or using external code without permission.
  • No use of AI-assisted coding tools.

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CSEE4119 Project 1 Proxy
$25