This document describes the implementation of a TFTP client using a finite state machine. It provides an overview of the TFTP protocol, including the different request and response operations for reading and writing files. It outlines the data flow and formats for each operation. It also presents the finite state machine for the TFTP client, including the different states and transitions between states based on sending and receiving requests and responses. The goal of the project is to design and develop a TFTP client using these specifications.
Overview of the TFTP protocol.
TFTP (Trivial File Transfer Protocol) is, as its name implies, a very simple mechanism for transferring files between 2 hosts.
TFTP is typically used for downloading software and configuration files to Internet and LAN appliances like routers, switches and gateways.
Due to its simplicity, TFTP is often contained in bootloader programs that need to have a very small memory footprint in order to fit into EEPROM style chips.
TFTP is not a reduced version or predecessor of FTP. TFTP and FTP do not have anything in common and serve different purposes. While FTP comes with some minimal access and session control and other features, TFTP is barely a file transport mechanism.
Overview of the TFTP protocol.
TFTP (Trivial File Transfer Protocol) is, as its name implies, a very simple mechanism for transferring files between 2 hosts.
TFTP is typically used for downloading software and configuration files to Internet and LAN appliances like routers, switches and gateways.
Due to its simplicity, TFTP is often contained in bootloader programs that need to have a very small memory footprint in order to fit into EEPROM style chips.
TFTP is not a reduced version or predecessor of FTP. TFTP and FTP do not have anything in common and serve different purposes. While FTP comes with some minimal access and session control and other features, TFTP is barely a file transport mechanism.
UML stands for Unified Modelling Language.
UML is a standard language for specifying, visualizing, constructing, and documenting a system in which software represents the most significant part.
UML is different from the other common programming languages like C++, Java, COBOL etc.
UML is a pictorial language used to make software blue prints.
UML can serve as a central notation for software development process. Using UML helps project teams communicate, explore potential designs, and validate the architectural designs of software.
UML diagrams are made using notation of things and relationships.
The building blocks of UML can be defined as:
Things
Relationships
Diagrams
Things: Things are the most important building blocks of UML. Things can be:
Structural
Behavioral
Grouping
Annotational
The Structural things define the static part of the model. They represent physical and conceptual elements. Following are the brief descriptions of the structural things.
Class: Class represents set of objects having similar responsibilities.
Interface: Interface defines a set of operations which specify the responsibility of a class.
Collaboration: Collaboration defines interaction between elements.
Use case: Use case represents a set of actions performed by a system for a specific goal.
Component: Component describes physical part of a system.
Node: A node can be defined as a physical element that exists at run time.
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral things:
Interaction: Interaction is defined as a behavior that consists of a group of messages exchanged among elements to accomplish a specific task.
State machine: State machine is useful when the state of an object in its life cycle is important. It defines the sequence of states an object goes through in response to events. Events are external factors responsible for state change.
Difference between OSI Layer & TCP/IP LayerNetwax Lab
Difference between OSI Layer & TCP/IP Layer
TCP/IP OSI
It has 4 layers. It has 7 layers.
TCP/IP Protocols are considered to be standards
around which the internet has developed.
OSI Model however is a "generic, protocolindependent standard."
Follows Vertical Approach Follows Horizontal Approach
In TCP/IP Model, Transport Layer does not
Guarantees delivery of packets.
In OSI Model, Transport Layer Guarantees
delivery of packets.
UML stands for Unified Modelling Language.
UML is a standard language for specifying, visualizing, constructing, and documenting a system in which software represents the most significant part.
UML is different from the other common programming languages like C++, Java, COBOL etc.
UML is a pictorial language used to make software blue prints.
UML can serve as a central notation for software development process. Using UML helps project teams communicate, explore potential designs, and validate the architectural designs of software.
UML diagrams are made using notation of things and relationships.
The building blocks of UML can be defined as:
Things
Relationships
Diagrams
Things: Things are the most important building blocks of UML. Things can be:
Structural
Behavioral
Grouping
Annotational
The Structural things define the static part of the model. They represent physical and conceptual elements. Following are the brief descriptions of the structural things.
Class: Class represents set of objects having similar responsibilities.
Interface: Interface defines a set of operations which specify the responsibility of a class.
Collaboration: Collaboration defines interaction between elements.
Use case: Use case represents a set of actions performed by a system for a specific goal.
Component: Component describes physical part of a system.
Node: A node can be defined as a physical element that exists at run time.
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral things:
Interaction: Interaction is defined as a behavior that consists of a group of messages exchanged among elements to accomplish a specific task.
State machine: State machine is useful when the state of an object in its life cycle is important. It defines the sequence of states an object goes through in response to events. Events are external factors responsible for state change.
Difference between OSI Layer & TCP/IP LayerNetwax Lab
Difference between OSI Layer & TCP/IP Layer
TCP/IP OSI
It has 4 layers. It has 7 layers.
TCP/IP Protocols are considered to be standards
around which the internet has developed.
OSI Model however is a "generic, protocolindependent standard."
Follows Vertical Approach Follows Horizontal Approach
In TCP/IP Model, Transport Layer does not
Guarantees delivery of packets.
In OSI Model, Transport Layer Guarantees
delivery of packets.
Overview of the FTP protocol.
In the early days of the Internet, applications were mostly restricted to mail transfer (email) and file transfer. FTP (File Transfer Protocol) is one of the first standardized protocols for exchanging binary and text files between hosts.
FTP is rather simple in that it uses a TCP connection for exchanging commands and a data transfer TCP connection for the actual file transfer.
In normal FTP operation, the client opens the control connection to the FTP server while it is up to the server to open data connections for each file transfer. With the upcoming firewalls, this scheme proved to pose a problem since firewalls tend to block incoming TCP connections. Thus a passive mode was defined where the client is responsible to open the data connection to the server.
This Technical Note describes the Message formats used in PathMATE Multi-Process deployments when communicating between any two process instances.
Section 2 provides an overview of the different message protocol layers involved during
transmission defining basic terminology and the basic concepts.
Section 3 describes in the detail the PathMATE Application Messaging Protocol and all supported message formats, as defined for the CPP Transformation Maps in 8.2.0 software releases.
Appendix A lists sources for referenced information for Ethernet and TCPIP protocols.
This tutorial gives very good understanding on Computer Networks protocols After completing this tutorial, You will find yourself at a moderate level of expertise in knowing Advance Networking protocols (, from where you can take yourself to next levels.
This Technical Note describes the Message formats used in PathMATE Multi-Process
deployments when communicating between any two process instances.
Section 2 provides an overview of the different message protocol layers involved during
transmission defining basic terminology and the basic concepts.
Section 3 describes in the detail the PathMATE Application Messaging Protocol and all supported message formats, as defined for the CPP Transformation Maps in 8.2.0 software releases.
Appendix A lists sources for referenced information for Ethernet and TCPIP protocols.
Design an Implementation of A Messaging and Resource Sharing Softwarenilabarai
In this article it has been looked how to program using sockets by implementing an echo server along with a client that is used to send and receive string messages. It will start off by giving a quick introduction to TCP/IP fundamentals and then explain how sockets fit into the diagram. Most network application can be divided into two pieces: a client and a server. A client is the side that initiates the communication process, where as the server responds to incoming client requests. There would be contains three types of service from this software, that is Message Transfer service, Voice Transfer service and File Transfer service. All this sorts are the design issue of this software.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Dear students get fully solved assignments
Send your semester & Specialization name to our mail id :
help.mbaassignments@gmail.com
or
call us at : 08263069601
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
1. IP and Applications – Project
Implementation of a TFTP Client
Design and implementation of trivial file transfer
protocol client using finite state machine
Supervisor
Proff. Dr. Rudolf Jäger
Christopher Köhnen, cand. PhD
The goal of this small project is to implement a simple protocol in order to
foster the theoretical background offered during the lecture
Author
Udaykumar Sharma
Matrikelnummer : 997168
11/20/2013
Version 0.1
2. IP and Applications – Project Implementation of a TFTP Client
Table of Contents
Table of Contents .................................................................................................................................... 2
1.
Introduction .................................................................................................................................... 3
2.
Overview of protocol ...................................................................................................................... 4
2.1 TFTP READ Request ....................................................................................................................... 5
2.1.1 How to Client Send read Request to server? ............................................................................. 5
2.1.2 How server send data to Client? ................................................................................................ 5
2.1.3 How client send acknowledge to server? .................................................................................. 5
2.2 TFTP WRITE Request ..................................................................................................................... 6
2.2.1 How to make DatagramSocket? ................................................................................................ 6
2.2.2How to send WRITE request? ..................................................................................................... 6
2.2.3 How server send acknowledgement to client?.......................................................................... 6
2.2.4 How client send data to server? ................................................................................................ 7
2.2.5 How Server send acknowledgement for data? .......................................................................... 7
2.3 TFTP Data Flow Diagram ............................................................................................................... 8
3 TFTP Finite State Machine ................................................................................................................... 9
3.1 FSM for the Client ......................................................................................................................... 9
3.2 FSM Infinite Loop ........................................................................................................................ 10
4 Project UML diagram ......................................................................................................................... 11
4.1 Project work packages ................................................................................................................ 12
3. IP and Applications – Project Implementation of a TFTP Client
1. Introduction
TFTP is a short form of trivial file transfer protocol and is a forerunner protocol of FTP (file
transfer protocol). Basic use of TFTP is to transfer information from client to server or vice
versa.
TFTP protocol builds on top of UDP protocol. TFTP utilize functionality of UDP to transferring
information but advantage of TFTP is providing acknowledgement. TFTP has modes namely
octet, netascii and etc. and has operations such as READ, WRITE, DATA, ACKNODGEMENT
and ERROR. TFTP data packet is 512 byte. As described in requirement this project has build
on the bases of TFTP 1350 standard and also has facility of finite state machine.
4. IP and Applications – Project Implementation of a TFTP Client
2. Overview of protocol
In terms of networking there are client and server send request and response to eachother.
This request and response is in the form of read and write for data and acknowledgement.
Below table describe protocol stack of TFTP 1350.
Order of header
Local Medium
Internet
2 bytes
TFTP Opcode
Datagram
TFTP Formats
Type
Opcode #
Format without header
2 bytes
String
1byte
String
1 byte
01/02
Filename
0
Mode
0
2 bytes
2 bytes
N byte
Data
O3
Block #
Data
ACK
2 bytes
04
2 bytes
Block #
Error
2 bytes
05
2 bytes
ErrorCode
RRQ/WRQ
String
ErrMsg
Table 1 TFTP Formats
Above stack has contain 5 operation such as
Opcodes#
1
2
3
4
5
Operations
Read (RRQ)
Write (WRQ)
Data (DATA)
Acknowledgement (ACK)
Error (ERROR)
Let’s see all the operations in brief.
1 byte
0
5. IP and Applications – Project Implementation of a TFTP Client
2.1 TFTP READ Request
2.1.1 How to Client Send read Request to server?
0
#OPCODE
READ[1]
FILENAME
BINARY FORM
0
MODE (NETASCII)
BINARY FORM
0
/*To sending read request to server with #0#Opcode #Filename#0#Mode
*Opcode for read request is 01
*FileName is in Binary Form
*0 : Devide Filename and Mode
*Mode : (NETASCII, OCTET or MAIL) in Binary Form*/
DatagramPacket _readpacket = new DatagramPacket(packet,IP,Port);
socket.send(_readpacket);
2.1.2 How server send data to Client?
0
#OPCODE
DATA[3]
0
#BLOCK
NUMBER[1...]
#DATA BINARY
FORM
/**
*When client send read request to Server in reply server will send #Opcode (3) #Block Number (1---]
*and Binary Data */
DatagramPacket _datapacket = new DatagramPacket(byteArray,byteArray.length);
socket.recieve( _datapacket);
2.1.3 How client send acknowledge to server?
0
#OPCODE
DATA[4]
0
#BLOCK
NUMBER[1...]
0
0
/**When client send acknowledge response to Server #Opcode (4) #Block Number (1---] */
byteArra[0]=0
byteArra[0]=4
byteArra[0]=0
byteArra[0]=1
DatagramPacket _acknoledgepacket = new DatagramPacket(byteArray,byteArray.length);
socket.recieve( _acknoledge);
6. IP and Applications – Project Implementation of a TFTP Client
2.2 TFTP WRITE Request
2.2.1 How to make DatagramSocket?
/*When we know we have server available already then we can directly make datagram socket*/
DatagramSocket socket = new DatagramSocket()
2.2.2How to send WRITE request?
#OPCODE
WRITE[2]
0
FILENAME
BINARY FORM
0
MODE (NETASCII)
BINARY FORM
0
/**To sending Write request to server we required #Opcode #Filename#0#Mode
*Opcode for write request is 02
*FileName is in Binary Form
*0 : Devide Filename and Mode
*Mode : (NETASCII, OCTET or MAIL) in Binary Form*/
DatagramPacket _writepacket = new DatagramPacket(packet,IP,Port);
socket.send(_writepacket);
2.2.3 How server send acknowledgement to client?
0
#OPCODE ACK[4]
0 0
0
/**After getting Write request server will send Acknowledgement packet to client
*Opcode for ACK request is 04 following with 0’s */
DatagramPacket _acknowledgement packet = new DatagramPacket(ackpacket[],ackpacket.length);
socket.recieve(_acknowledgementpacket);
7. IP and Applications – Project Implementation of a TFTP Client
2.2.4 How client send data to server?
0
#OPCODE
DATA[3]
0
#BLOCK
NUMBER[1...]
#DATA BINARY
FORM
/**After getting acknowledgement response from the server, client will send “3” opcode follows
with “1 or 2 or 3…….” Block number and Data to the server */
byteArray[0]
byteArray[3]
byteArray[0]
byteArray[1]
DatagramPacket _datapacket = new DatagramPacket(byteArray,byteArray.length, ServerIP,
localport);
socket.send( _datapacket);
2.2.5 How Server send acknowledgement for data?
0
#OPCODE
DATA[4]
0
#BLOCK
NUMBER[1...]
0
0
/**After getting Data from the client, server will send “4” acknowledgement opcode follows with
“1 *or 2 or 3…….” Block number to the client */
byteArray[0]
byteArray[4]
byteArray[0]
byteArray[1]
DatagramPacket _acknowledgement = new DatagramPacket(byteArray,byteArray.length, ServerIP,
localport);
socket.recieve( _datapacket);
8. IP and Applications – Project Implementation of a TFTP Client
2.3 TFTP Data Flow Diagram
NOTE : Each request has Message size 512 byte including 2 byte for opcode and 2 byte for
block number so if total message size is 1024 byte then Message divided in 2 block and each
block data size is 512 byte.
File Size 1024 byte
512 Byte
512 Byte
Block 01
Block 02
Block 1
0
#OPCODE
DATA[3]
Block 2
0
#BLOCK
NUMBER[1...]
4 Byte TFTP Channel
After dividing File size in block its goes to TFTP channel
where it gets 4 more byte so each block has contain 516
byte of data
9. IP and Applications – Project Implementation of a TFTP Client
3 TFTP Finite State Machine
Finite state machine is useful to describe interactive network application. FSM describe TFTP
states more preciously it has 6 tuple:
FSM = <S, E, A, F, g, q0>
Where S, E and A are finite sets of states, events and actions. Respectively q0 is a initial
state of FSM.
3.1 FSM for the Client
State INIT is belongs to the User Interface it is not a part of FSM.
(R)
/RRQ
INIT
(W)
/WRQ
Read
Connection
Op(1)/Filename
/Mode(ascii)
Write
Error
Connection
Connection
Op(2)/Filename
/Mode(ascii)
Connection
Data (1)/ACK(1)
ACK (0)/Data(1)
Ack_sent
Data_sent
Data_RCV
ACK_RCV
Figure 3.1 TFTP FSM State diagram
10. IP and Applications – Project Implementation of a TFTP Client
As described in state diagram TFTP has two main states called Read and Write (Get and Put).
It follows with connection to the server which accepts first packet in the form of Opcode,
filename and mode. After establish connection with server client start sending data and
receiving acknowledgement from the server in the form of read and write packet.
3.2 FSM Infinite Loop
FSM has infinite loop to receive and send acknowledge and data from client to server.
do {
if (lastpacketprocess) {
dataprocess = false;
lastpacket = true;
}
if (!lastpacketprocess) {
// encode block number
encodeIntoTwoByete(blocknumber, spaceData,
OPCODE_SIZE);
// create data and reply UDP packet
dataPacket = new DatagramPacket( spaceData,
spaceData.length,
this.serverIpAddress, serverPortNum);
replyACK = new DatagramPacket( spaceAck,
spaceAck.length);
// send and receive data and acknowledgement
connection.dataSendRCV(dataPacket, replyACK);
filelength = filelength - onepacket;
blocknumber++;
readnumbyte = readnumbyte + 512;
// if not receive expected block number or opcode. resend
// packet again
while (!((checkAction(replyACK.getData(),blocknumber,
OPCODE_SIZE)) | (checkAction(replyACK.getData(), TFTP_ACK,
0))))
{
connection.dataSendRCV(dataPacket, replyACK);
}
if (filelength <= 512) {
lastpacketprocess = true;
}
}
// if final packet available send it and exit from loop
if (lastpacket) {
byte[] lastdata = new byte[ MESSAGE_HEADER_LENGTH
+ filelength];
dataPacket = new DatagramPacket(lastdata,lastdata.length,
this.serverIpAddress, serverPortNum);
replyACK = new DatagramPacket( spaceAck, paceAck.length);
connection.dataSendRCV(dataPacket, replyACK);
}
} while (dataprocess);
11. IP and Applications – Project Implementation of a TFTP Client
Above source code describe how infinite loop passes data and acknowledgement to the
server and in reply server provides a appropriate result to the client.
4 Project UML diagram
12. IP and Applications – Project Implementation of a TFTP Client
4.1 Project work packages
TFTP Main
TFTP
Constant
TFTP_State
TFTP Write
TFTP Read
Connection
Data_ACK_Send_
Receive
TFTP Main : This class belongs to User interface. This class calls the state classes.
TFTP Sate: This is a super class for the states. It generates socket and inetaddress of the
server
Write_Request : This class inherits from the TFTP_State class and perfoms the write
request.
Read_Request: This class is state class of TFTP_State it also inherited. This class perfoms
the read request.
Connection: This class make connection between Client and Server and get first packet
from the server in the form of acknowledgement or data.
Data_ACK_Send_Receive: This class responsible to gather data and its
acknowledgement from the server or receive and send bunch of data packet or
acknowledgement packet.
13. IP and Applications – Project Implementation of a TFTP Client
Bibliography
Nugues, P. (n.d.). WebProtocols. Retrieved November 19, 2013, from http://fileadmin.cs.lth.se/:
http://fileadmin.cs.lth.se/cs/Education/EDA095/2011/lectures/WebProtocols/Web_2011_4.pdf
State Pattern. (n.d.). Retrieved November 19, 2013, from Tutorial Point:
http://www.tutorialspoint.com/design_pattern/state_pattern.htm