CS 450 Introduction to Networking Assignment

Assignment Help Computer Network Security
Reference no: EM133035127

CS 450 Introduction to Networking - University of Illinois Chicago

Assignment 1

Introduction
In this homework, you will implement reliable communication over an unreliable link, just like TCP.

You will be provided with code that simulates an unreliable link between sender and receiver. This link has a very constrained buffer (only two packets can be ‘in flight' at a time), and can have arbitrary delay and loss rates. Your job will be to create and implement a protocol over this connection that correctly transfers data, in a reasonable amount of time.

The homework git repository contains several tools that will help you simulate and test your solution. You should not make changes to any file other than hw4.py. All other files contain code used to either simulate the unreliable connection, or code to help you test your your solution.

Your solution - hw4.py file will be tested against stock versions of all the other files in the repo, so any changes you make will not be present at grading time.

Your solution must be contained in the send and recv functions in hw4.py. You should not change the signatures of these functions, only their bodies. These functions will be called by the grading script, with parameters controlled by the grading script. Your solution must be general, and should work for any file.

Your task is to modify the bodies of these functions so that they communicate using a protocol that ensures that the data sent by the send function can be reliably and quickly reconstructed by the recv function. You should do so through a combination of setting timeouts on socket reads (e.x. socket.timeout(float)) and developing a system through which each side can acknowledge if / when they receive a packet.

Remember that the connection is bandwidth constrained. No more than two packets can be "on the wire" at a time. If you send a third packet while there are already two packets traveling to their destination (in either direction), the third packet will be dropped, so it is important that you get your timeouts and your acknowledgments right.

Testing Your Solution
You can use the provided tester.py script when testing your solution. This script uses the receiver.py, sender.py, and server.py scripts to simulate an unreliable connection, and to test your solution.
information to better understand the network. These parameters and options can be viewed by calling python3 tester.py --help, and are also reproduced below.
usage: tester.py [-h] [-p PORT] [-l LOSS] [-d DELAY] [-b BUFFER] -f FILE [-r RECEIVE] [-s] [-v]

Utility script for testing HW4 solutions under user set conditions.

optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT The port to simulate the lossy wire on (defaults to 9999).
-l LOSS, --loss LOSS The percentage of packets to drop.
-d DELAY, --delay DELAY
The number of seconds, as a float, to wait before forwarding a packet on.
-b BUFFER, --buffer BUFFER
The size of the buffer to simulate (defaults to 2 packets).
-f FILE, --file FILE The file to send over the wire.
-r RECEIVE, --receive RECEIVE
The path to write the received file to. If not provided, the results will be written to a temp file.
-s, --summary Print a one line summary of whether the transaction was successful, instead of a more verbose description of the result.
-v, --verbose Enable extra verbose mode.

python3 tester.py --file test_data.txt --loss .05 --delay 0.1.

Hints and Suggestions
A key part of this homework is determining how long to wait before resending a packet. You should estimate this timeout value using the EWMA technique for estimating the RTT, and use this in determining your timeout. With correctly tuned timeouts, lower RTT will result in higher throughput.
A good way of determining the timeout to use is the "estimated RTT + (deviation of RTT * 4)".
Use the included --verbose option to include very detailed information about what your code is sending over the network, and how the network is handling that data.
Use the included --receive option to see the results of your file transfer. By default, the testing script will store the results of your code to a temporary location. This option may be useful if you're not sure how or why the received file does not match the sent file.
Make sure you try your solution under many different loss ratios and latencies by changing the parameters in the tester.py script.
Keep your packets smaller than or equal to utils.MAX_PACKET (1400 bytes).
Pay attention to the end of the connection. Ensure that both sides of the connection finish without user assistance, even if packet losses occur, while guaranteeing that the entire file is transferred. Look at the FIN/FINACK/ACK sequence in TCP for ideas.

You solution will be graded by using it to transfer six different files, each under different simulated test conditions. For each test case, there is a minimum throughput requirement and a timeout for your program to exit. The timeout is set as 50% more than the corresponding required throughput.

Assignment 2

In this homework, you will improve upon the implementation of homework 4. Please see the description of Homework 4 for the basics. Everything is the same about this assignment except for the file sizes, buffer sizes, and throughput cutoffs. All of the files have been kept named as "homework 4" for ease of portability. You are welcome to use your implementation of homework 4 as the starting point.

The homework git repository provides the same skeleton code as in homework 4 for compatibility with your previous implementation. You should not make changes to any ile other than hw4.py. All other iles contain code used to either simulate the unreliable connection, or code to help you test your your solution.

For more details about the skeleton code, you can refer to the introduction for homework 4.

Note: The only difference between homework 4 and 5 is that homework 5 has different file sizes, buffer sizes and throughput cutoffs in grading. Specifically, in homework 4, only 2 packets can be transmitted concurrently on a single wire (buffer size is 2). In homework 5, the buffer size can be greater than 2.

Therefore, it is recommended to improve your solution to fully saturate the capacity of a wire.

Attachment:- Introduction to Networking.rar

Reference no: EM133035127

Questions Cloud

At what interest rate would at refinance : Now suppose that AT has $400,000 of preferred shares outstanding that have a yield of 8% on par. At what interest rate would AT refinance
Implementing the tqm principles and practices : Explain whether the organization has solid foundation and infrastructure for implementing the TQM principles and practices.
What do eatonville and winter park represent : What information does the first part of the story reveal about the social and economic contexts in which Delia and Sykes live? What do Eatonville and Winter Par
How much is in the account after two years : If $1000 is deposited in such a plan and the interest is left to accumulate, how much is in the account after 2 years
CS 450 Introduction to Networking Assignment : CS 450 Introduction to Networking Assignment Help and Solution, University of Illinois Chicago - Assessment Writing Service
Main legislation and organisational policy : What are the main legislation and organisational policy and procedures should you be familiar with and aware of when administering financial accounts?
What the non-controlling interest share : DDD holds 60% of HHH. HHH reported net income of $55,000 in 2019 and DDD's separate net income. What the non-controlling interest share
Assess groupon global strategy : Assess Groupon's global strategy. What is its global competitive advantage (AAA framework) and what bases of advantage does it rely on?
Business process improvement : Briefly describe a real-world situation you experienced where an attempt at business process improvement was or was not successful.

Reviews

len3035127

11/24/2021 10:53:24 PM

I had a homework 4 which I have the code for but for homework 5 it''s based on homework 4 just the difference is that we need to track the loss and delays and "Specifically, in homework 4, only 2 packets can be transmitted concurrently on a single wire (buffer size is 2). In homework 5, the buffer size can be greater than 2. Therefore, it is recommended to improve your solution to fully saturate the capacity of a wire." I need help implementing homework 5 I will be attaching the different hw files that I have one is for the project it will contain different codes for hw4 and test cases and I will add pdf for hw4 and hw5.

Write a Review

Computer Network Security Questions & Answers

  Design a network infrastructure for two campuses

Design a network infrastructure for two campuses located in Atlanta and Cincinnati based upon the specifications

  What types of freeware encryption can you find on internet

What types of freeware encryption can you find on the internet, and based off either expeirence or the websites what do you see as the pros and cons to those?

  Analyse the problem of providing security of campus network

Analyse the problem of providing security of the above campus network using WPA or WPA2 - Create a design part of the proposed solution with suitable diagram

  A digital evidence and computer crime and technology and law

Digital Evidence, Computer Crime, Technology and Law- As digital criminals have become more sophisticated, security-related incidents have become substantially more diverse in nature, and their impact on society is increasingly more destructive.

  Design the elements of network servers storage and security

Design the elements of network, servers, storage, and security that will support key solutions. Design should incorporte backup, and failover services.

  Write a paper on security effects of cryptographic tunneling

Write a paper consisting of 500-1,000 words (double-spaced) on the security effects of cryptographic tunneling based on an understanding of the OSI (Open Systems Interconnect) model.

  Summarize the primary vulnerabilities and potential threats

Summarize the primary vulnerabilities and potential threats that exist for GCI related to the practice of storing sensitive data on laptops. In your opinion, which of the risks GCI faces are most significant to the company?

  Summerize the role of public key infrastructure

Summerize the role of Public Key Infrastructure (PKI). Discuss the use of a Certificate Authority (CA). Include the use of a CA and also include why the backing up of these keys is so important.

  Classify this vulnerability using the risos model

The time-to-expire field is set at 0.5 because the administrator believes that this field unit is minutes (and wishes to set the time to 30 seconds) However, bind expects the field to be in seconds and reads the value as 0 - meaning that no data i..

  Identify best practices for fixing vulnerabilities

Identify best practices for fixing vulnerabilities and insecure interactions as introduced by poor coding. Update your table of contents before submission.

  Setup a malware analysis lab

Critical analysis discussing how looking at such sandboxes you learned good practices on creating your lab - Brief description the objective and key findings

  Explain the implications of the risks and techniques

Briefly describe how computers and humans can pose risks to infrastructure assets. Explain the implications of the risks and techniques on critical infrastructure sectors

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd