Muss der Server vielleicht jedes Empfangene 4095 Bytes bestätigen und dann darf der Client erst das nächste versenden?
Nein muss er nicht.
Der Sender kann seine Daten einfach raushauen und braucht dazu keine Bestätigung durch den Empfänger.
Während der Filetransfer läuft braucht keine Rückmeldung in Form von "OK" oder Ähnliches durchgeführt werden.
Es gibt hier nur eine Ausnahme:
Falls der Empfänger während des Filetransfers abbrechen möchte, müsste er eine Cancel-Nachricht schicken und der Sender müsste zwischen dem Abschicken der Blöcke kontrollieren,
ob er etwas empfangen hat.
Diese Feature würde ich aber auf später verschieben.