mi interessa reinventare la ruota.
Perfetto. Allora:
www.google.it
...+ prendere spunto da sorgenti gia fatti da altri.
Dal canto mio, che ho scritto un demone FTP, posso dire che non è nulla di eccessivamente complesso. Il protocollo FTP è abbastanza semplice.
L'unica "difficoltà" iniziale (per lo meno se vuoi rimanere in un contesto di programmazione asincrona) è data dal fatto di dover gestire contemporaneamente due canali, quello dei comandi e quello dei dati. Ma forse con Java + multi-threading questo non è un problema...
L'RFC959 non è il massimo in termini di chiarezza. A me è tornato utile questo:
http://cr.yp.to/ftp.html

Saluti