DESIGN AND IMPLEMENT TFTP USING USER DATAGRAM PROTOCOL

Qualified Writers
Rated 4.9/5 based on 2480 reviews

100% Plagiarism Free & Custom Written - Tailored to Your Instructions

Computer Network Programming:

A0: File Transfer Application Part I

Trivial File Transfer

TFTP is an non-trivial network application. The objective of this project is to design and implement TFTP using the User Datagram Protocol(UDP).

The TFTP protocol is defined in RFC1350 [1]. It is a simplified version of File Transfer Protocol (FTP). TFTP doesn’t include directory listing or authentication, but concentrates on file transfer only. The design of TFTP the application includes:

(a) User interface design: This is used by the client to interact with the user. User command put or get starts a file transfer.
(b) File transfer design: the main task here is to complete two state-transition diagrams, one for the client and one for the server. However, make sure to also include a description of the client and server which explains how they work, and how the state transition diagrams describe their operation.
(c) File system module design: This component is responsible for accessing the file systems of the sender and the receiver. The sender and the receiver have to read and write corresponding files, respectively. In this part of the design you should choose how to structure these operations, by designing functions which can make the file operations simple and efficient.
(d) Network module design: This is to hide the details of the network operations and provide a higher-level interfaces to the FSMs for the actions which needs network interactions. This part of your report should include the design of the packet used to send files between the server and the client.

It is recommended to use the ANSI C programming languageto implement the TFTP application. Students who wish to use a different language, e.g. Java or C++, should request to do so. The server and the client may be implemented by means of a Finite State Machine (FSM), or, if preferred, the FSM may be used to guide the implementation. In either case, it is important that the student understand the concept of a FSM in order to make the implementation straightforward.

Task and Submission

You should submit a project report and a software package to the examiner.The report should not be more than 10 pages in length; the submission should be in PDF version. The report and the software should then be bundled together as a zip file, which is submitted via the assignment link on the course web page. Please make sure to include only the necessary files (not including object code, temporary files, or executable files) in a directory, and then use the zip command to compress the whole directory into a zip file. The report should include
• a section describing the objectives and methodology of this project,
• a section explaining the design principle of the server and the client program,
• a section explaining the protocol, including at least two state-transition diagrams one or more for the server and one for the client,
• a section detailing the network packet design,
• a list of the source code files, with the purpose of each file,Each section could consist of a several paragraphs and you may insert some figures and tables or screen shots. Do not include unnecessary screen shots. All diagrams should have captions and be referred to by their name (eg Figure 3) in the body of the document.

The software package, which is based on the server-client paradigm, should include:

• two main programs: client.c and server.c;
• a network module: netudp.c and (optionally) an FSM module: fsm.c;
• other files which include all the necessary functions for user interface design;
• a makefile and a README file.
Your software should be submitted as a zip file, e.g. studentid.zip.

A1: File Transfer Application Part II

Trivial File Transfer

In this assignment, you will complete the software and review and revise the design of the file transfer application. You will need to submit your revised design as well as the working software.

The design of TFTP the application follows the same structure as before:
(a) User interface design;
(b) File transfer design (including the two state transition diagrams, one for the
client and one for the server);
(c) File system module design;
(d) Network module design.

Task and Submission

You should submit a project report and a software package to the examiner.The report should not be more than 10 pages in length; the submission should be in PDF version. The report and the software should then be bundled together as a zip file, which is submitted via the assignment link on the course web page. Please make sure to include only the necessary files (not including object code, temporary files, or executable files) in a directory, and then use the zip command to compress the whole directory into a zip file. The report should include
• a section describing the objectives and methodology of this project,
• a section explaining the design principle of the server and the client program
• a section explaining the protocol, including at least two state-transition diagrams one or more for the server and one for the client,
• a section detailing the network packet design,
• and a section demonstrating your software in action,
• a section summarizing what you have learned from this project and what you can improve.

The software package, which is based on the server-client paradigm, should include:

• two main programs: client.c and server.c
• a FSM module, fsm.c (optionally), and a network module: netudp.c
• other files which include all the necessary functions for user interface design,
• a makefile and a README file

Your software should be submitted as a zip file, e.g. studentid.zip.

A2: File Update Application

Trivial Remote File Update

The new application you need to design and implement is called trivial file update protocol(TFUP). Unlike TFTP, this protocol does not already have a spec- ification as an IETF standard. Whenever we refer to TFUP we refer to the protocol designed in this document.

The objective of this project is to extend the scope of project implemented in Assignment 1. The purpose is to transfer a certain file (identified by name) with the most recent modification time on either the client or the server to the other host. If the most recent file is on the server, the file is copied to the client, and if the most recent file is on the client, it is copied to the server. The protocol is as follows:
• The client and the server are running on different hosts
• The directory from which the server is started contains a set of files denoted R(remote files)
• The directory from which the client is started contains a set of files denoted L(local files).
• Each file has a timestamp showing the latest time when it is updated. The timestamps of a file f in R or L is denoted TR (f ) or TL (f ), respectively.
• The server is started by typing “fsyncserv” in a certain directory where the files to be managed are located.
• The client is started by typing “fsynccli IP-address-of-the-server” in the directory where its files to be managed are located.
• After the UDP connection with the server is made, the client waits for the user commands which can be

– rlist: This command lists the names and the timestamps of all the files in R.
– llist: This command lists the names and the timestamps of all the files in L.
– rupdate f: This command performs the following actions:
∗ if f ∈ L and f ∈ R, then the client sends the f to the server to add/it into R.
∗ if f ∈ L and f ∈ R, then the server sends the f to the client to add/it into L.
∗ if f ∈ L and f ∈ R, nothing happens and the command prints a//message ”File does not exists”.
∗ if f ∈ L and f ∈ R and TL (f ) < TR (f ), the server sends its copy of f to the client to overwrite the copy of f in L.
∗ if f ∈ L and f ∈ R and TL (f ) > TR (f ), the client sends its copy of f to the server to overwrite the copy of f in R.
∗ if f ∈ L and f ∈ R and TL (f ) = TR (f ), nothing happens and the command prints a message ”file is up-to-date”.

Tasks and Requirements

You should complete the following tasks.

• Design a technique to determine the file with the most recent modification time.
• Design a method to decide which file is newer. Then use TFUP to determine whether to carry a ‘get’ or ‘put’ operation among the server and client.
• Implement the application using the UDP sockets with timeout and retransmission for all the packet between the client and the server. Your timeout and retransmission design should use timestamp to assist calculation of RTT as in the new version of rtt package in the textbook.
• Follow the steps and techniques you learned from the course.

-Protocol and Packet Design
-Finite State Machine Design
-User Interface Design
-Network Support Design
-File System Module Design
-Reliability Design

You are allowed to use and incorporate as many as possible designs and techniques from TFTP, but you still need to go through the whole process and come up with a new revised and consistent design.
• Implement the application software. Pay attention to strategy of determining the operation of ‘get’ or ’put’. You may reuse some functions for the implementation of TFTP.
• Test your implementation and demonstrate that your application software is functional as required.

 

 

 

 

Price: £109

100% Plagiarism Free & Custom Written - Tailored to Your Instructions