Python代写 | CSC458 Programming Assignment 2: Bufferbloat

本次Python代写是完成路由层TCP传输的数据缓存

CSC458 Programming

Assignment 2: Bufferbloat

Introduction
In this exercise we will study the dynamics of TCP in home networks. Figure 1 shows a “typical” home network with a
Home Router connected to an end host. The Home Router is connected via Cable or DSL to a Headend router at the
Internet access provider’s office. We are going to study what happens when we download data from a remote server to
the End Host in this home network.
Tasks
We want to perform the following tasks simultaneously using different queue sizes at the router:
 Start a long‐lived TCP flow sending data from h1 to h2. Use iperf. We will record the congestion windows size
(cwnd) of this connection.
 Send 10 pings per second from h1 to h2 and record their RTTs.
 Spawn a webserver on h1. Download the index.html web page from h1 repeatedly every two seconds and
measure how long it takes to fetch it (on average). The starter code has some hints on how to do this. Make sure
that the webpage download data is going in the same direction as the long‐lived flow (h1 to h2). You should use
the curl command to download the page.
 These three tasks (long‐lived flow, ping train, and webserver downloads) should all be happening
simultaneously.
 Plot the time‐series of the following:
o The long‐lived TCP flow’s cwnd
o The RTT reported by ping
o Webpage download time
o Queue size at the router
You should perform this simulation using three different queue sizes: Q=5 packets, Q=20 packets, and Q=100 packets.
Starter Code
To help you get started, we provide a basic skeleton code inside a virtual machine. Once you have your instance running,
run a Mininet sanity check (sudo mn ‐‐test pingall) and then continue with this assignment. Your instance should have
Mininet and most tools pre‐installed.