File transfer protocol
The file transfer protocol (FTP) was created in 1971. Its final RFC is 959. If you're curious, you can read more about it at  https://tools.ietf.org/html/rfc959.
Being an old protocol, a few commands don't have clear specifications, so some alternative specifications (that are more or less official) have been written in order to fill those blanks. We'll go back to them when writing the server.
Another important point to note is that FTP uses TCP connections.
Now that we've quickly introduced you to FTP, let's see how it works.
Introduction to FTP
A client connects to a server and then sends commands to the server. Each command receives an answer from the server with either a success or failure.
For example, the client will send the PWD
 command to the server:
=> PWD\r\n <= 257 "/"\r\n
Here, the server answered 257
 (which literally means pathname created) and then gave the current working directory the client is in (which is "/"
, in this case).
As you can see, every command...