July 14th, 2024

QUIC File Transfer Service, a CLI and srv for transferring large files

A QUIC File Transfer Service CLI and server use the QUIC Protocol for fast large file transfers. It supports stream multiplexing, 0-RTT connections, MD5 checksums, and includes server/client implementations with setup guidance.

Read original articleLink Icon
QUIC File Transfer Service, a CLI and srv for transferring large files

The "QUIC File Transfer Service" is a command-line interface (CLI) and server designed for transferring large files using the QUIC Protocol. It leverages the quic-go implementation on top of UDP to enable stream multiplexing on a single connection, enhancing file transfer speeds. Clients can connect to the server, open streams to request files, and receive file chunks concurrently. The service supports 0-RTT for quicker connections and offers an optional MD5 checksum for file verification. It provides both server and client implementations, including usage instructions and configuration details.

Link Icon 8 comments
By @sirgallo - 4 months
Hey, not sure how this came up but I’m the original author of the repository…thanks for taking a look at my code and thinking it was cool enough to post on here. If you have any questions let me know, or create an issue on the repository and I’ll try to take a look at it.
By @bradknowles - 4 months
Looks like the last time the code itself was touched was about seven months ago. And there are no open issues. I did spot the following in the README.md file: ``` An optional MD5 checksum can be calculated as well for the transferred file to verify that the content is the same as the source file. The server provides its own MD5 for comparison once the file is written. However, this would only be an additional level of redundancy as quic has a reliability guarantee already built into the protocol. ``` Could we make this SHA-256 or something else a little more modern and robust than MD5?
By @tarasglek - 4 months
Weird to be comparing vs rsync. Rsync is notorious for maximizing latency as it has no pipelining.

Better baseline would be transferring data via ssh + tar. Or serving a directory over http and concurrently downloading a file with axel

By @nunobrito - 4 months
Well.. I'm not a go programmer. Just wanted the usual download/install and syntax to use the tool.

Nowhere to be found. I guess I'll just open a ticket there.

By @vips7L - 4 months
How does QUIC compare to the proprietary Aspera protocol?
By @Hydrocarb0n - 4 months
The File Transfer Service utilizes the quic-go implementation of the quic Protocol, built on top of UDP. Since quic allows for multiplexing of streams on a single connection, the service takes advantage of this to attempt to speed up file transfers by processing and writing the file from the remote host (the server) to the destination (the client) concurrently
By @GauntletWizard - 4 months
Is it time to move QUIC past UDP yet? Does QUIC deserve it's own Protocol number? There's only one byte in IP for protocol number, so it makes sense to limit the number of applications, but I believe QUIC has reached that level.

https://www.iana.org/assignments/protocol-numbers/protocol-n...