Need to implement a rolling window use udp and the header from tcp. Base the code off of the python files submitted Document Preview:

Computer Networks A365 Programming Assignment 2 Due November 11th 2018 Points: 200 This assignment must be done in Python3.6 or higher. The objective of this assignment is to design and implement the TFTP (trivial file transfer protocol application) on UDP so that it provides the reliable service that TCP provides. As a minimum, your application must account for packet loss, delay, corruption, duplication, and re-ordering. Your server must be able to handle multiple simultaneous requests by using the python ‘threading’ module. Protocol Description: This assignment uses the same protocol that you used in the first programming assignment, but you should now extend the protocol, so that it works using the UDP protocol. Expand your header to reflect the TCP header shown in figure 3., RFC 793. There are many fields that you will not use. Modify the client so that is sends a bad packet %5 of the time. You can change the checksum so that it is incorrect, but you are free to do it another way. The server should randomly select a window size between 3 and 10, i.e. 4, 5, 6, 7, 8, or 9. Modify the server so that is fails to acknowledge %2 of the packets, forcing the client to resend. You must use the Go-Back-N protocol and the sliding window protocol and implement a timer to resend lost packets. You must implement the correct sequence numbering system described in the text book and in lectures. You must implement the TCP connection state diagram shown in Figure 6, RFC 793. Send to the terminal, information which shows your program running and implementing the correct protocol, acknowledgments, sequence #’s, resending information, etc. An important limitation is the maximum size of your packets. The UDP protocol has an 8 byte header, and the IP protocol underneath it has a header of ~20 bytes. Because you will be using Ethernet networks, which have a maximum frame size of 1500 bytes, this leaves 1472 bytes for your entire packet (message type, sequence number,…